一个Lambda Expression 就是一个包含若干表达式和语句的匿名函数。可以被用作创建委托对象或表达式树类型。是不是使用lambda表达式前,必须有定义好的委托?例如:
delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5);

解决方案 »

  1.   

    是的。不过.NET内置了一些委托类型。比如你的代码可以写作:
    Func<int, int> myDelegate = x => x * x;
    int j = myDelegate(5);
    或者
    var myDelegate = x => x * x;
    int j = myDelegate(5);
      

  2.   


    var myDelegate = x => x * x;
    int j = myDelegate(5); 
    这样写的话报错啊,显示无法将“lambda 表达式”赋予隐式类型的局部变量
      

  3.   

    写错了,这样试下:
    var myDelegate = new Func<int, int>(x => x * x);
    int j = myDelegate(5);
      

  4.   

    c#必须预先定义好委托,vb.net可以不用,
      

  5.   

    先建立委托.NET内置有Func和Action两个委托机制,一个有返回值,一个没返回值,LZ可以多去试试