gpt4 book ai didi

c# - "default"通用约束有什么作用?

转载 作者:行者123 更新时间:2023-12-03 16:17:41 27 4
gpt4 key购买 nike

下面的代码可以编译,但是Microsoft的文档似乎根本没有提到这种特殊的约束类型。

class TestGenericsBase<T1>
{
public virtual void Method1<T>(T arg)
{
}
}

class TestGenerics : TestGenericsBase<object>
{
public override void Method1<T>(T arg)
where T : default // what does this do?
{
}
}
知道它是做什么的吗?到目前为止,我唯一的线索是它仅适用于方法。

最佳答案

可以在C#9设计建议中找到可为空的引用类型的 default 约束。它被添加为在可空泛型参数class的重写或显式实现的方法中的struct约束中的T?之间消除歧义。
更多细节也可以在Unconstrained type parameter annotations proposal中找到

To allow annotations for type parameters that are not constrained toreference types or value types, C#9 allows a new where T : defaultconstraint.


这些约束和注释在 nullable contexts中起作用

关于c# - "default"通用约束有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66753378/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com