【发布时间】:2013-11-20 10:13:42
【问题描述】:
我有一个关于泛型和在创建具体类时使用接口转换的问题:
namespace MyNamespace
{
interface ITest
{
}
class Timpl : ITest
{
}
class Test<T> where T : ITest
{
public T get()
{
return default(T);
}
}
class MyClass
{
public MyClass()
{
Test<ITest> s = new Test<Timpl>(); //Does not compile
}
}
}
我阅读了协变和逆变,但我一定遗漏了一些东西,或者它与我正在尝试做的事情无关,或者它只是对我正在尝试做的事情不起作用。
虽然我可以在 Test 之间进行转换,因为 TImple 继承自 ITest。
【问题讨论】:
-
您没有发现所提供的任何答案有用吗?不要忘记通过检查答案分数下方的绿色标记将其标记为已接受。
标签: c# generics interface casting