我很困惑,爲什麼這個編譯:爲什麼沒有參數的委託會被編譯?
private delegate int MyDelegate(int p1, int p2);
private void testDelegate()
{
MyDelegate imp = delegate
{
return 1;
};
}
MyDelegate應該是一個指針,它有兩個int參數並返回另一個整型,正確的方法?爲什麼我可以分配一個不帶參數的方法?
有趣的是,這些不編譯(它抱怨簽名不匹配,因爲我期望)
private void testDelegate()
{
// Missing param
MyDelegate imp = delegate(int p1)
{
return 1;
};
// Wrong return type
MyDelegate imp2 = delegate(int p1, int p2)
{
return "String";
};
}
感謝您的幫助!
瑞安
非常感謝您的回答;這很有道理。我把上面的那個標記爲「正確的」,只是因爲它首先到達那裏。謝謝! – Ryan 2010-04-20 21:49:05