C#3.0匿名类和Lanmda表达式

  

1.初始化器:className variableName = new className(property1=value1…);

2.var可以声明一个没有类型的变量,根据赋值的不同改变数据类型

3.匿名方法,如果一个类用的少,可以省略类名,直接创建实例化

4.扩展方法:支持给基础类添加方法

//匿名方法例子
static void Main(string[] args) {
    var class1 = new { name = "jack", age = 15, gender = "man" };
            Console.WriteLine(class1.name+class1.age+class1.gender);
            for (;;) ;}

另一个例子

 public static class StringExtension {    //扩展类名,必须静态类
        public static string ExtensionFunction(this string input) {//必须有参数,表示调用扩展方法的类实例
           return "Hello "+input;
        }
    }
    class Program {
    static void Main(string[] args) {
            string str = "this is a string";
            Console.WriteLine(str.ExtensionFunction());//输出Hello this is a string
            for (;;) ;
    }
    }

Lanmda表达式

Lanmuda表达式:是用来简化匿名方法,由三个部分构成:1.放在括号内的参数列表(未类型化,可以推断参数)2.=>运算符 3.C#语句

    delegate int CalculateDelegate(int a, int b);//构建两个参数委托
    class Program
    {
        static void CalculateFunction(CalculateDelegate cal)
        {
            int a = 100, b = 100;
            Console.WriteLine(cal(a,b));
        }
    static void Main(string[] args) {
            Program.CalculateFunction((a,b)=>a+b);//输出200
            Program.CalculateFunction((a, b) => a * b);//输出10000
            CalculateDelegate c;
            c = (a, b) => a + b;    //相当于构建函数
            Console.WriteLine(c(10,10));//输出20
            for (;;) ;
    }
    }

 

posted @ 2016-03-07 20:23  大尾巴贝贝  阅读(801)  评论(0编辑  收藏  举报