为什么在课名后加<t>?

时间:2017-06-09 08:44:42

标签: c#

班级名称后使用班级<TClass>是什么意思。例如

public class Foo<TFooSomething,string> where TFooSomething :class {

    public Foo(IBoo<TBooSomething> boo) : base(boo)
    {
       //code goes here
    }
} 

如果只是为了声明参数类型,我们不能在构造函数中声明它们吗?

1 个答案:

答案 0 :(得分:1)

它是一种泛型类型,在内容可以是不同类型的类中非常有用。一个很好的例子是List,其中T指定列表中元素所属的类型。当然,您可以使用非泛型类型,例如ArrayList,但这意味着当您访问列表中的元素时,您将不知道其类型。您当然可以创建一个非泛型的列表类型,它将元素类型作为构造函数的参数,但这只意味着需要在运行时进行类型检查,而不是依赖于C#的类型检查。