如何创建Class<>它是如何工作的?

时间:2014-04-03 17:23:12

标签: c# list generics

如何创建这种类:

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

1 个答案:

答案 0 :(得分: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; }
}

然后你可以像这样使用accessor / mutator:

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

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