您的位置:首页 > 编程语言 > C#

C#3.0新特性

2016-03-07 20:23 573 查看
  

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 (;;) ;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: