2014-04-03 69 views
-2

怎麼都這種類創建:如何創建Class <>以及它是如何工作的?

List<string> example = new List<string>(); 
+6

您需要閱讀一些關於_generics_和_arrays_的教程和書籍 –

+2

從[arrays](http://msdn.microsoft.com/en-us/library/9b9dty7d.aspx)開始並然後[泛型](http://msdn.microsoft.com/en-us/library/512aeb7t.aspx)。 –

回答

2

你可以做一個泛型類類型T的當您從類實例化對象,也就是你指定將採取什麼樣的T類型。

這是page on MSDN describing generic classes

一個例子:

public class MyClass<T> 
{ 
    private List<T> MyList; 

    public MyClass(List<T> list) 
    { 
     this.MyList = list; 
    } 

    public T this[int i] 
    { 
     get 
     { 
      return MyList[i]; 
     } 
     set 
     { 
      MyList[i] = value; 
     } 
    } 
} 

有關此[]你可以看看Indexers on MSDN的更多信息。這些允許您使用方括號表示的類,就像使用數組一樣。

當你使用這個類的時候,這就是你決定什麼類型的T的地方。請參閱以下內容:

MyClass<string> myStrings = new MyClass<string>(new List<string> { "hello" }); 

myStrings[0] = "change the 0th element"; 

Console.WriteLine(String.Format("Element 0 is {0}", myStrings[0])); 

爲了讓多維,這裏是你將如何改變它的一個例子:

private List<List<T>> MyList; 

public T this[int a, int b] 
{ 
    get { return MyList[a][b]; } 
    set { MyList[a][b] = value; } 
} 

然後,您可以使用訪問/突變是這樣的:

myObject[1,3] = "a new string at row 1, column 3"; 

Console.WriteLine(myObject[0,4]); 
+1

謝謝,...沒有流浪我找不到答案,如果每個人都只是投票的一切與潛在的知識。可能會有一堆人問同樣的事情,因爲他們找不到我的問題,也沒有你的答案,... – MilitaryG

+1

@MilitaryG不客氣 –

+1

@MilitaryG,人們都在低調,因爲你的問題有點混亂。 –

相關問題