IList
のインスタンスをパラメーター(または他のインターフェースですが、例として使用しましょう)として取るメソッドを作成したい場合はIList
、型制約を使用してジェネリックメソッドを作成できます。例:
public static void Foo1<T>(T list) where T : IList
{
}
または、IList
パラメータを直接受け取るメソッドを作成することもできます。
public static void Foo2(IList list)
{
}
すべての目的と目的で、これらのメソッドはまったく同じように動作するようです。
List<string> myList = new List<string>();
Foo1(myList);
Foo2(myList);
だからここに私の質問があります-これらの2つのアプローチの違いは何ですか?2番目のアプローチの方が少し読みやすいようです。他に知っておくべき違いはありますか(生成されるILの違いなど)?前もって感謝します。