2014-04-03 33 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,人们都在低调,因为你的问题有点混乱。 –

相关问题