new關鍵字有三種用法
當作運算子:
int i = new int(); 建構了int的預設建構函式,也就同等於 int i = 0; 或者 MyClass myclass = new MyClass();
當作修飾詞:
public class Base { public static int i = 1; } new 修飾詞使用完整限定名稱存取基底類別的隱藏成員,但可重新賦予值。 public class BaseNew : Base { new public static int i = 100; void Start() { Debug.Log(i); Debug.Log(Base.i); } }
印出
100
1
條件約束:
條件約束 (Constraint) 指定在泛用類別宣告的任何型別參數,都必須具有公用的無參數建構函式。
class ItemFactory<T> where T : new() { public T GetNewItem() { return new T(); } }
將new條件約束與其他條件約束一起使用時,一定要將其指定為最後一個:
public class ItemFactory2<T> where T : IComparable, new() { }