【发布时间】:2015-05-04 14:16:26
【问题描述】:
我有以下代码
interface IEncryption{}
class EncryptionA : IEncryption {}
class EncryptionHandler<T> where T: IEncryption{}
class EncryptionMenu
{
public EncryptionMenu(EncryptionHandler<IEncryption> encryption){}
}
void main()
{
EncryptionMenu encryptionMenu = new EncryptionMenu(new EncryptionHandler<EncryptionA>()); // Error
}
我明白了
“参数类型 'EncryptionHandler
' 不可分配给 参数类型'EncryptionHandler '"
我不明白为什么即使 EncryptionA 实现了 IEncryption 并且应该强制转换它,它也无法转换它。我也尝试使 EncryptionMenu 通用,但它使相同的错误向上冒泡并使代码复杂化。
【问题讨论】:
-
了解协方差。
标签: c# class generics interface