我们一直很熟悉new在C#/C++ 以及其他各种语言中作为创建一个类型实例的关键字。其实在c#中,new还有其他两种重要的用法:
1) new Modifier 用来替子类隐藏一个从父类继承过来的成员 (重写overwrite)
example:
public class BaseC { public int x; public void Invoke() {} }
public class DerivedC : BaseC { new public void Invoke() {} }
2) new Contraints 用作generic type 参数的限定修饰. 表示该类型必须有一个不带参数的公有构造函数
example:
class ItemFactory<T> where T : new() { public T GetNewItem() { return new T(); } }