私はこの ICollection に非常に慣れていないので、IEnumerable と IEnumerator を実装する方法についてのガイダンスが必要です。Microsoft のドキュメントを確認しましたが、そこに書かれていることは理解できたと思います (と思います)。しかし、私のケースでそれを実装しようとしたとき、少し混乱したので、明確にする必要があるかもしれません.
基本的に、クラス T を宣言し、次に ICollection を実装する別のクラス Ts を宣言しました。Tsでは辞書を持っています。
メイン プログラムから、クラス Ts を次のように初期化します。 Ts ts= new Ts(){{a,b}, {c,d}};
だから、私の質問は次のとおりです。
1)それを行うことは合法ですか?IEnumerable と IEnumerator を完全に実装していないため、テストを実行していませんが、コンパイラが文句を言わなかったようです。これが 2 番目の質問につながりました
2) IEnumerable と IEnumerator を実装するにはどうすればよいですか?
以下は、私のポイントを説明するための擬似コードです。
public class T
{
string itemName;
int quantity;
.....
public T(string s, int q)
{
.....
}
}
public class Ts: ICollection
{
private Dictionary<string, T> inventory= new Dictionary<string,T>();
public void Add(string s, int q)
{
inventory.Add(s, new T(s,q));
}
public IEnumerator<T> GetEnumerator()
{
// please help
}
IEnumerator IEnumerable.GetEnumerator()
{
// what is the proper GetEnumerator here
}
...
implement other method in ICollection
}
extract from the main program
public Ts CollectionOfT = new Ts(){{"bicycle",100},{"Lawn mower",50}};
.........