我正在使用泛型類和約束條件。以下是我的課程。泛型類和約束條件
public class GenericList<T> where T : new()
{
private Node head;
// constructor
public GenericList()
{
head = null;
}
}
當我與整數創建對象,它工作正常
GenericList<int> list = new GenericList<int>();
但是,當我用繩子嘗試它給了我下面的編譯時錯誤。
GenericList<string> list1 = new GenericList<string>();
「字符串」必須是一個非抽象類型,以便在通用類型或方法「GenericTest.GenericList」 還當我過去的基準參數,以使用它作爲參數「T」的公開參數構造像任何自定義類,它工作正常。
字符串的問題是什麼?
康斯坦丁已經解釋了爲什麼它會失敗 - 但爲什麼你對T開頭的約束呢?你想什麼時候調用'new T()'?這就是所有的約束條件。 –
這些都沒有解釋爲什麼你想要無參數的構造函數約束。再次,你想在'GenericList'內調用'new T()'? –