我有一个实现接口 I 的对象(A 类)。
我的对象 C 有一个 BindingList listA
在某一时刻,我需要执行以下演员:
BindingList<I> funcName(){
...
return (BindingList<I>) C.listA;
}
但这由于转换错误而无法编译。
我应该怎么去做?
我有一个实现接口 I 的对象(A 类)。
我的对象 C 有一个 BindingList listA
在某一时刻,我需要执行以下演员:
BindingList<I> funcName(){
...
return (BindingList<I>) C.listA;
}
但这由于转换错误而无法编译。
我应该怎么去做?
这是一个协方差问题。它已在 .NET 4.0 中得到解决,但并非针对所有可枚举类型,而且我不认为它已针对 BindingList<T> 得到解决。
我认为您唯一的选择是创建一个新的 BindingList 实例,如下所示:
BindingList<I> funcName(){
...
return new BindingList<I>(C.listA);
}
或者,您可以将您的 C.listA 字段声明为 BindingList<I> 并将您的类的实例添加到其中。