//属性定义的简单化
public class User { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
隐含类型局部变量要点
var为关键字,可以根据后面的初始化语句自动推断类型,这个类型为强类型。 初始化语句必须为表达式,不可以为空。且编译时可以推断类型。一旦初始化之后,只可以存储这种类型。 var声明的仅限于局部变量,不可用于字段。亦可以用于for,foreach,using 等语句中。 数组也可以作为隐含类型。
匿名类型允许定义行内类型,无须显式定义类型。常和var配合使用来声明匿名类型。
var p1 = new { Id = 1, Name = "YJingLee", Age = 22 };//属性也不需要申明 var p2 = new { Id = 2, Name = "XieQing", Age = 25 }; p1 = p2;//p1,p2结构相同,可以互相赋值对象初始化器由一系列成员对象组成,其对象必须初始化,用逗号间隔,使用{}封闭。
User user = new User { Id = 1, Name = "YJingLee", Age = 22 };又例如,我把二个人加到一个基于泛型的类型为User的List集合中:
List<User> user = new List<User>{ new User{Id=1,Name="YJingLee",Age=22}, new User{Id=2,Name="XieQing",Age=25}, };//扩展方法,比如下面为 string 字符串类添加一个 提示方法.public static class Extensions//静态类 { public static void msg(this string s) //静态方法和this { //Regex regex = new Regex(@"^[/w-/.]+@([/w-]+/.)+[/w-]{2,4}$");MessageBox.Show("s"); } }扩展方法不仅能够应用到个别类型上,也能应用到.NET框架中任何基类或接口上。
即可用于整个.NET框架丰富的可组合的框架层扩展。
可以免去继承类的麻烦。