C#3.0新特性

Posted 大尾巴贝贝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#3.0新特性相关的知识,希望对你有一定的参考价值。

  

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 (;;) ;
    }
    }

 

以上是关于C#3.0新特性的主要内容,如果未能解决你的问题,请参考以下文章

Atitit.  c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0  

C#与C++的发展历程第一 - 由C#3.0起

[linux][c/c++]代码片段02

Vue.js 3.0 新特性预览

c#3.0的Linq查询表达式特性

Redis 3.0 新特性,支持redis 集群