:リスト<T>はIList <T>から、IEnumerable <T>からは役に立たないですか?がmscorlib.dllから
List<T>
が明示的に自身が
ICollection<T>, IEnumerable<T>, IEnumerable
由来
IList<T>
由来のほかに
ICollection<T>, IEnumerable<T>, IEnumerable,
から派生する必要がなぜ
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
{..}
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable, IList, ICollection, IReadOnlyList<T>, IReadOnlyCollection<T>
{...}
?
いいえ、それはmscorlib.dllからのものではありません。 mscorlib.dllにはC#コードが含まれていません。これはあなたの逆コンパイラがあなたに示しているものです。 – hvd
[ReferenceSource](https://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,36)を確認してください –
最終的にこれはあなたの逆コンパイラが役に立ちます。 1つのクラスでどのインタフェースが実装されているかを知ることは非常に便利です。そのような宣言はあいまいであり、「インタフェース継承」という誤った名前の副作用である。 C#の構文は、あなたをより豊かにするような継承のようなものに見えます。なぜなら、これはインターフェイスのメンバーを実装するために必要な作業が実際にはあなたをより貧しくするからです。機能ではなく、バグです。 –