<t>>在类声明中意味着什么?</t?>

时间:2013-12-05 14:09:04

标签: c# generics

class MyClass<T>是一个通用类。但是class MyClass<T?>是什么? 我只是猜测它将T定义为可空类型?但如果它如此,我不明白为什么和为什么 在网上找不到任何关于它的信息。

1 个答案:

答案 0 :(得分:2)

不,你误读了。没有class MyClass<T?>

class MyClass<T> : OtherClass<T?> where T : struct,这是完全合法的。

换句话说,你可以这样做:

class NullableList<T> : List<T?> where T : struct {}

您将获得一个通用列表,它使用可空类型作为其泛型类型,例如。如果您创建NullableList<int>,则会有一个方法Add(int? val)

有趣的是,通过nullables的语法糖魔法,你不能拥有Nullable的Nullable(例如。Nullable<Nullable<int>>),即使Nullable<T>是一个结构。它会产生编译时错误。