如何使用协方差(关键字)?我不知道。
我知道接口中的out关键字意味着协方差,它允许你使用一个比泛型参数指定的更派生的类型。所以我把泛型设置为对象,把返回类型设置为字符串。因为字符串是对象的子类。但是我试过了,它不起作用。
public interface IMyInterface<out T>
{
public T Foo();
}
public class CovarianceTest : IMyInterface<object>
{
public string Foo()
{
return "abc";
}
}
2条答案
按热度按时间zxlwwiss1#
协方差,允许您使用比泛型参数指定的类型派生更多的类型
这不是它的意思,你仍然需要编写与接口中的类型相匹配的方法,所以你必须这样做:
协方差允许你做的是把类示例赋给一个变量,这个变量被定义为一个不太具体的接口,如下所示:
这是因为从接口读取的所有
T
(即取out
)都保证是与不太具体的类型类型兼容的示例,即所有字符串也都是对象。3okqufwl2#
我怀疑你是想做以下事情。