zoukankan      html  css  js  c++  java
  • 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 (;;) ;
        }
        }
  • 相关阅读:
    微软免费人工智能课程
    如何定义,创建,启动一个线程
    什么是进程,什么是线程?
    Hashtable 数据遍历的几种方式
    action中result没有值
    <global-results>怎么用
    普通请求和ajax请求的区别
    result默认返回action中的所有数据,要想返回指定的数据怎么做呢
    ajax技术的应用?
    什么是国际化
  • 原文地址:https://www.cnblogs.com/feichangnice/p/5251770.html
Copyright © 2011-2022 走看看