2

基本的に、次のシグネチャを持つメソッドがあります。

public void Save(BindingList<T> items);

そして、私はそれを使用して呼び出そうとしています

classInstance.Save(items); //items = BindingList<ObjectInheritedFromT>

しかし、C# は、コンパイル時にエラーをスローする継承を認識していないようです。この場合、書かれたすべてのコードTは完全に機能しObjectInheritedFromTます。

これに対する回避策はありますか?である場合にこれが機能することに気付きましたが、(奇妙なことに) IEnumerable を実装していないIEnumerableことが判明し、 や などの操作を実行する必要があります。BindingList<>RemoveAdd

4

1 に答える 1

3

BindingList<T>として宣言されていないためBindingList<out T>-共分散をサポートしていません

これを読んでください:

共変性と反変性に関するFAQ

于 2013-01-04T20:55:35.450 に答える