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新特性的主要内容,如果未能解决你的问题,请参考以下文章