0

クラスを持つサードパーティのAPIを使用しています。このクラスのコンストラクターはを受け入れますIList<CustomType>。ドキュメントごとのコンストラクターは次のとおりです

public LogicalOrFilter(
IList<ElementFilter> filters
)

list<ElementFilter>このオブジェクトを初期化するときに、を渡してみました。ただし、機能しません。ランタイムエラーはスローされません。サードパーティのAPIであるため、その内部動作はわかりません。このクラスには、単一のを受け入れる別のコンストラクターがありますElementFilter。私がそれを使うとき、クラスは私が望むことをします。したがって、残りのコードは問題ないと確信しています。このコンストラクターに渡すことができる標準のデータ構造を誰かが説明できますか?

4

3 に答える 3

1

汎用リストを許可する必要がありますが、いつでもReflectorをダウンロードしてAPIの内部を調べ、コンストラクターが何をしているかを確認できます。

于 2012-09-27T20:54:39.743 に答える
0

あなたがそれを説明したように動作するはずです。このコードは機能します:

public class Blah
{
    private IList<string> _strings;

    public int Count
    {
        get { return this._strings.Count; }
    }

    public Blah(IList<string> strings)
    {
        _strings = strings;
    }
}

その後、どこか別の場所:

List<string> someStrings = new List<string> { "a", "B", "c" };
var blah = new Blah(someStrings);
Console.WriteLine(blah.Count);

プリントアウト3

于 2012-09-27T20:58:44.100 に答える
0

List<ElementFilter>を実装IList<ElementFilter>しているので、それで問題なく呼び出すことができます。

うまくいかない場合は、サードパーティのアイテムの元の作者に相談してください。それは彼らのコードの誤りか、コードが何をすべきかについてのあなたの期待の誤りのどちらかである可能性があります。

于 2012-09-27T20:54:56.567 に答える