2

次のコードは、IEnumerable の複数の列挙の可能性に関する警告を表示します。

public ClassName(IEnumerable<OtherClassName> models) : base(models)
{
    _models.AddRange(models);
}

この警告を削除するための通常の解決策は、「base」呼び出しのために機能しません。そのリストを保存する場所がないため、リストに変換できません。

コンストラクターにリストをパラメーターとして使用させる唯一のオプションはありますか? この場合、その推奨される方法はありますか?

4

1 に答える 1

6

キーワードList<OtherClassName>を使用して受け取り、呼び出す別のプライベート コンストラクターを作成します。this

public ClassName(IEnumerable<OtherClassName> models)
    : this(models.ToList())
{
}

private ClassName(List<OtherClassName> models)
    : base(models)
{
    _models.AddRange(models);
}

modelsそして、本当にクラス内に保存する必要があることを確認してください。たぶん、すでにbaseクラスに保存されていて、そこから使用できますか?

于 2013-09-01T19:39:01.153 に答える