Tôi đang bối rối tại sao điều này biên dịch:Tại sao đại biểu không có tham số biên dịch?
private delegate int MyDelegate(int p1, int p2);
private void testDelegate()
{
MyDelegate imp = delegate
{
return 1;
};
}
MyDelegate phải là một con trỏ đến một phương pháp mà có hai tham số int và trả về int khác, phải không? Tại sao tôi được phép gán một phương thức không có tham số?
Điều thú vị là những không biên dịch (nó than phiền về sự sai lệch chữ ký, như tôi mong đợi)
private void testDelegate()
{
// Missing param
MyDelegate imp = delegate(int p1)
{
return 1;
};
// Wrong return type
MyDelegate imp2 = delegate(int p1, int p2)
{
return "String";
};
}
Nhờ sự giúp đỡ!
Ryan
Cảm ơn rất nhiều câu trả lời của bạn; nó có ý nghĩa tốt. Tôi đánh dấu một ở trên là "chính xác" chỉ đơn giản bởi vì nó đã có đầu tiên. Cảm ơn bạn! – Ryan