我正在尝试创建一个委托数组,并想知道我是否可以在不定义类中的所有委托方法的情况下执行此操作,而是将其存储在数组中并传递出去。下面是我对语法的尝试,但它不起作用。有没有办法做到这一点,还是我必须在类中定义传统方法,将它们存储在数组中?
delegate void myDelegateType();
myDelegateType[] myDelegateArray = new myDelegateType[3];
myDelegateArray[0] = new myDelegateType(void myMethod1(){int i = 0;});
答案 0 :(得分:2)
C#2.0介绍了anonymous methods:
myDelegateArray[0] = new myDelegateType(delegate(){int i = 0;});
C#3.0介绍了lambda expressions:
myDelegateArray[0] = new myDelegateType(() => {int i = 0;});
两者之间有only minuscule difference,但lambdas通常是首选,因为它们更易于阅读和阅读。写。
答案 1 :(得分:1)
它不是内联(听起来像c#inline)而是名为Lambda表达式。 这是它的样子:
delegate void myDelegateType();
static void Main(string[] args)
{
myDelegateType[] myDelegateArray = new myDelegateType[3];
myDelegateArray[0] = () => {int i = 0;};
}