0

我正在尝试创建一个委托数组,并想知道是否可以在不定义类中的所有委托方法的情况下做到这一点,但就像在方法中那样,然后将其存储在数组中并传递出去。下面是我对语法的尝试,但它不起作用。有没有办法做到这一点,还是我必须在将方法存储在数组中的类中按常规定义方法?

 delegate void myDelegateType();
 myDelegateType[] myDelegateArray = new myDelegateType[3];
 myDelegateArray[0] = new myDelegateType(void myMethod1(){int i = 0;});
4

2 回答 2

2

C# 2.0 引入了匿名方法

myDelegateArray[0] = new myDelegateType(delegate(){int i = 0;});

C# 3.0 引入了lambda 表达式

myDelegateArray[0] = new myDelegateType(() => {int i = 0;});

两者之间只有微小的区别,但通常首选 lambda,因为它们更易于读写。

于 2013-07-15T03:49:05.623 回答
1

它不称为 inline (听起来像 c #inline ),而是称为 Lambda 表达式。这是它的样子:

delegate void myDelegateType();
static void Main(string[] args)
{
    myDelegateType[] myDelegateArray = new myDelegateType[3];
    myDelegateArray[0] = () => {int i = 0;};
}
于 2013-07-14T22:54:37.633 回答