私のクラスに初期化するコレクションを追加しようとしています。私はここで初期化子について読む:https://msdn.microsoft.com/en-us/library/bb384062.aspx#Anchor_2自分のクラスでコレクション初期化子を使用
私は私のパズルの重要な一部引用します:
Collection initializers let you specify one or more element initializers when you initialize a collection class that implements IEnumerable or a class with an Add extension method.
[OK]を、私は言葉またはに強調したいです。私はそれを読むと、私はメソッドを追加してクラスを作ることができるはずです、そして、コレクション初期化子はこのクラスで動作するでしょうか?これはそうではないようです。私が注目したことの一つは、実際にはAddメソッドを追加するということでした。だから私は拡張メソッドとして追加を作成しようとしましたが、役に立たない。ここで
は、私はそれが動作しませんしようとした小さなサンプルです:
public class PropertySpecificationCollection
{
private List<PropertySpecification> _internalArr;
public void Add(PropertySpecification item)
{
_internalArr.Add(item);
}
}
は私以外の解釈を引用対象ですか?私はそれを何度も何度も読んでいたが、他の方法でそれを解釈できるかどうかを見たが、失敗した。
私はそれを間違って解釈していますか?MSDNのコレクション初期化子の説明に何か不足していますか、エラーがありますか?
'PropertySpecificationCollection'のインスタンスを作成してコンストラクタでコレクションを初期化するとどうなりますか? –
これはドキュメントのエラーのように見えます。あなたは 'IEnumerable'を実装する必要があり、適切な' Add'メソッドが必要です。 – Lee
http://stackoverflow.com/questions/2495791/custom-collection-initializers – Mino