gpt4 book ai didi

c# - 为什么 C# 不支持变体泛型类?

转载 作者:IT王子 更新时间:2023-10-29 04:44:38 26 4
gpt4 key购买 nike

<分区>

以这个 LINQPad 小例子为例:

void Main()
{
Foo<object> foo = new Foo<string>();
Console.WriteLine(foo.Get());
}

class Foo<out T>
{
public T Get()
{
return default(T);
}
}

编译失败,出现以下错误:

Invalid variance modifier. Only interface and delegate type parameters can be specified as variant.

我没有发现代码有任何逻辑问题。一切都可以静态验证。为什么不允许这样做?它会导致语言中的一些不一致,还是由于 CLR 的限制而被认为实现起来过于昂贵?如果是后者,作为开发人员,我应该了解哪些限制?

考虑到接口(interface)支持它,我希望类支持在逻辑上遵循它。

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