【发布时间】:2020-04-29 05:33:13
【问题描述】:
我在 C# 应用程序中发现了这种代码:
public class MyClass<T> where T:class
{
public T? field1 { get; set; }
}
我不明白为什么,但我的开发环境出现此错误:
[CS8627] 可空类型参数必须已知为值类型或不可空引用类型。考虑添加“类”、“结构”或类型约束。
有什么想法吗?
【问题讨论】:
-
为什么要使用约束
where T : class?由于此约束而发生错误。只有结构类型可以为空。引用类型(由约束where T : class指定)不能为空(在C#8之前)。 -
这个答案可能对stackoverflow.com/a/58852480/10983940有帮助
-
如果我删除“where T : class”也会出现同样的问题
标签: c#