C# 关于具有like T的泛型类型
我想知道这是什么?我认为这是一种通用的方法。它有一个“where”部分。那怎么办?我也听说过一些泛型类。我如何学习这些?你能推荐一篇文章吗C# 关于具有like T的泛型类型,c#,generics,C#,Generics,我想知道这是什么?我认为这是一种通用的方法。它有一个“where”部分。那怎么办?我也听说过一些泛型类。我如何学习这些?你能推荐一篇文章吗 protected T Item<T>() where T : class { return GetDataItem() as T ?? default(T); } protectedt Item(),其中T:class { 将GetDataItem()返回为T??默认值(T); } where子句被称为
protected T Item<T>() where T : class
{
return GetDataItem() as T ?? default(T);
}
protectedt Item(),其中T:class
{
将GetDataItem()返回为T??默认值(T);
}
where子句被称为“通用约束”。在这种情况下,其中T:class
规定T必须是引用类型(即,不是结构
)
有关常规约束的更多信息:
和一般类:
编辑
在您提供的代码段中,需要约束,因为否则空合并运算符(?)就没有意义,因为值类型(
struct
s)不能为空。.MSDN对泛型的引用是的,这是一个泛型方法,用于约束可以从此方法返回的参数类型。这不是重复的!这和我的问题不一样。您显示的问题与“where”部分类似。次要脚注re您的最后一行:Nullable
(对于任何T:struct
)本身就是一个struct
,名义上可以是null
,感谢您的更正。t:struct
和t:class
都不允许t
为空,这不是很奇怪吗?