new 三种应用
new 这个关键字在我们程序代码中可畏是太常见了,正是因为这么的不起眼,所以大家都忽略了它的应用,可能提到它,大家都会说就是新建一个对像嘛。最近正在复习一些基础知识,就小结一下:
1、new 运算符
当new 关键字作为new 运算符时,可以用来创建对象和调用构造函数、创建匿名类型的实例、调用值类型的默认构造函数等。
例:object o=new object();//使用new运算符创建一个类型为object的对象o。
例:var query=from c in list select new {Name=c.Name};//创建一个匿名类型的实例
例:int i=new int();//调用int 类型默认构造函数
2、new 修饰符
new 作为修饰符时,可以用来显式隐藏从基类继承的成员。
例:
public class A{
public int x;
……
}
public class B:A
{
new public int x;
……
}
B b=new B();
int i=b.x;//B类实例b的x 成员
3、new 约束
用于在泛型声明中约束可能用作类型参数的类型。new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。如果该类型参数存在多个约束,则new()约束必须最后指定。
例:public class A<T> where T:class,new()
{
……
}//创建名称为A<T>泛型类型,并指定了约束,指定了该类型参数T必须为引用类型(由class指定)或者具有无参数的构造函数。