当我试图找到另一个问题的答案时,我注意到这段代码是用 C# 编译的:
public void Foo<T>(T obj)
where T : class?
{
}
我什至没能在文档中找到它的含义。
附言显然有人已经决定关闭一个问题,甚至没有弄清楚“重复”并没有真正联系起来。首先尝试弄清楚事情而不是结束问题真的很难吗?副本是关于可为空的原始类型,而可为空的引用类型则完全不同。除了有人看到他们都有问号并将问题标记为重复。
最佳答案
它强制 T 必须是可为空的引用类型。
您为 T 设置的类型必须派生自 object?
。
这是 C#8 中的一项新功能,可将类型显式声明为可为空。 如果你有
Add<T>(T tmp);
你的文档,添加null就可以了;
关于c# - 上课做什么? (带问号的类)在 C# 泛型类型约束中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59630532/