C# の ICollection とは何ですか?
private void SendEmail(string host, int port,
string username, string password,
string from, string to,
string subject, string body,
ICollection<string> attachedFiles)
インターフェイスは、名前空間内のクラスのICollection<T>
基本インターフェイスです。System.Collections.Generic
ICollection<T>
インターフェイスは拡張され、 およびIEnumerable<T>
によって拡張されます。IDictionary<TKey, TValue>
IList<T>
実装は、クラスIDictionary<TKey, TValue>
と同様に、キーと値のペアのコレクションです。Dictionary<TKey, TValue>
実装は値のコレクションであり、そのメンバーはクラスIList<T>
のようにインデックスでアクセスできます。List<T>
ICollection<string>
OPが実際に理解しようとしているのは、明らかnew ICollection<string>()
に飛ぶつもりはないので、実装するものだと思います。
Micah が指摘したように、List<string>
実装しICollection<string>
ます。他の機能を知りたい場合は、ILSpy を見て、ICollection<T>
型を見つけて分析し、何がそれを実装しているかを確認してください。これが私の結果の一部です
... もっと
また、単純なstring
配列も実装しますICollection<string>
ICollection はコレクションを表すインターフェイスであり、厳密に型指定されたメンバーも含まれています
そのインターフェースを実装する方法の例を次に示します
http://support.microsoft.com/kb/307484
汎用リストはこのインターフェースを実装します
コレクションは、同じタイプ (この例では文字列) を持つオブジェクトのグループです。
ドキュメントから:
言語に固有の構造を利用するために、任意の型のオブジェクトを Object 型の 1 つのコレクションにグループ化できます。たとえば、C# の foreach ステートメント (Visual Basic では for each) は、コレクション内のすべてのオブジェクトが単一の型であると想定しています。
ICollectionは、コレクションのインターフェイス定義です。