【发布时间】:2015-09-17 20:28:57
【问题描述】:
我有这个简单的课程
public class Program
{
private static void Main(string[] args)
{
ClassB<ClassA> objA = new ClassB<ClassA>();
ClassB<ITestA<MyDTO>> objB = new ClassB<ClassA>();
}
}
public class ClassB<T>
{
///some code here
}
public interface ITestA<T>
{
///some code here
}
public class MyDTO
{
///some code here
}
public class ClassA : ITestA<MyDTO>
{
///some code
}
这行代码
ClassB<ITestA<MyDTO>> objB = new ClassB<ClassA>();
出现编译错误
Cannot implicitly convert type 'ClassB<ClassA>' to 'ClassB<ITestA<MyDTO>>
由于 ClassA 实现了 ITestA,我不知道为什么会出现编译错误。请帮助我理解我做错了什么。
谢谢, 埃森
【问题讨论】:
-
只有接口支持方差。你不能那样做。
标签: c# generics type-conversion