我是C#的新手,有兩個關於delegate
s的問題。代表問題
MSDN表明Delegate
類只有兩個構造函數,它們每個都有兩個參數。但是,在下面的程序中,我使用看似單參數的構造函數實例化了一個Delegate
對象(請參閱註釋行)。
using System;
static class Program
{
public delegate void MyDelegate();
static void MyMethod()
{
Console.WriteLine("I'm inside MyMethod!");
}
static void Main()
{
MyDelegate myDelegate = new MyDelegate(MyMethod); // Constructor Call
myDelegate();
}
}
我誤解了什麼嗎?
我的第二個問題是:當用一個或多個參數聲明delegate
時,爲什麼我們需要給參數名稱?在C++中,我們可以做這樣的事情在類:
public delegate void MyOtherDelegate(int, int, string);
如果你有兩個問題,然後開始*兩個*問題。否則,你最終會遇到一些人回答一個人而另一些人回答另一個人的問題,然後哪個人成爲所選擇的答案?一團糟。通過每個問題詢問一個問題來避免這種情況。 –
一位語言設計師非常清楚歧義的複雜性:) @EricLippert – nawfal