• 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 (;;) ;
        }
        }
  • 相关阅读:
    [Asp.net]站点地图SiteMap
    [Asp.Net]最近一个项目的总结
    [Asp.net]说说密码框和只读框
    [工具]推荐一款查看dll依赖工具
    [工具]Serv-U配置教程
    [NHibernate]Nullables
    [NHibernate]NHibernate.Tool.hbm2net
    [NHibernate]使用AttributeNHibernate.Mapping.Attributes
    delphi跨平台SOCKET--System.Net.Socket
    INDY9发送tstream
  • 原文地址:https://www.cnblogs.com/feichangnice/p/5251770.html
Copyright © 2020-2023  润新知