インターフェイス 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>として宣言し、クラスのインスタンスを追加することもできます。