.net3.5新特性

对象初始值设定项

StudentName student = new StudentName
{
    FirstName = "Craig",
    LastName = "Playstead",
    ID = 116
};

List<StudentName> students = new List<StudentName>()
{
  new StudentName {FirstName="Craig", LastName="Playstead", ID=116},
  new StudentName {FirstName="Shu", LastName="Ito", ID=112, },
  new StudentName {FirstName="Stefan", LastName="Rißling", ID=113, },
  new StudentName {FirstName="Rajesh", LastName="Rotti", ID=114, }
};

使用Lambda表达式:
delegate T delegateMul<T>(T x, T y);

static T Multi_Mul<T>(T[] nums, delegateMul<T> func)
{
...
}

static void Main(string[] args)
{
int[] nums = new int[5] { 1, 2, 3, 4, 5 };
int pro;
pro = Multi_Mul<int>(nums,(int a, int b) =>  {return a * b;});
Console.WriteLine("乘积:"+pro);
Console.Read();
}


扩展方法:

扩展方法是定义在静态类内部的静态方法,开发人员可以像用实例方法那样来使用扩展方法。根据C#的语法规定,实例方法只能通过建立一个实例对象才能调用,不能通过类名来调用,相反的,静态方法只能通过类名来调用。而扩展方法提供了一个新的机制可以在对象实例上调用静态方法。扩展方法主要用于在不改变现有的类型代码下,扩展现有类型的功能。所扩展的功能只限于当前上下文有效,并不会对原有类型的定义的代码产生变化。它的一般声明格式如下:
  public static class 类名
  {
    public static 返回类型 扩展方法名 (this 要扩展的类型 参数名)
    {
      函数体;
    }
  }

 

匿名类型:
var v = new { Amount = 108, Message = "Hello" };
匿名类型是由一个或多个公共只读属性组成的类类型。不允许包含其他种类的类成员(如方法或事件)。

 

分部类和方法

可以将 结构 接口 或方法的定义拆分到两个或多个源文件中。每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来。

public partial class Employee
{
    public void DoWork()
    {
    }
}

public partial class Employee
{
    public void GoToLunch()
    {
    }
}

 

你可能感兴趣的:(.net)