泛型:我不太确定<T>的作用 - 你能解释一下吗?

Yat*_*rix 0 c# generics inheritance .net-3.5

我正在创建一个派生自的抽象类.我有一个Value可以是众多数据类型的属性.我看到一篇关于泛型的文章,我只是想知道我的理解是否正确.

有抽象:

BaseClass<T>
Run Code Online (Sandbox Code Playgroud)

并继承它像:

InheritingClass: BaseClass<int>
Run Code Online (Sandbox Code Playgroud)

基本上等于:在BaseClass中定义的类型的任何地方T,int通过InheritingClass使用时将其视为一个类型

这是我的理解,我只是想确保在构建其余的这些类之前这是正确的,并且发现我已经离开了.这是我第一次使用泛型.

Bol*_*ock 5

不,不是的; 这意味着你的班级特别只是继承自BaseClass<int>.如果您T在自己中定义泛型类型参数InheritingClass,如下所示:

InheritingClass<T> : BaseClass<int>
Run Code Online (Sandbox Code Playgroud)

那个类型参数只适用于InheritingClass和它自己的成员,并不适用BaseClass于任何方式.也不对TInheritingClass自动解析到int,由于血统.换句话说,两个类型参数彼此独立.