class MyClass<T>
是一个通用类。但是class MyClass<T?>
是什么?
我只是猜测它将T定义为可空类型?但如果它如此,我不明白为什么和为什么
在网上找不到任何关于它的信息。
答案 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>
是一个结构。它会产生编译时错误。