我想知道这个问题是因为我认为C#需要在类中实现所有接口。使用ILSpy,我发现IReadOnlyList.this[int index]索引器的实现不在List类中。
这是类声明的编辑片段(未列出所有内容)。
这是类声明的编辑片段(未列出所有内容)。
public class List < T > : IList <T >, IReadOnlyList < T >
IList<T>.this[int index]
是存在的,但IReadOnlyList<T>.this[int index]
却不存在。
这似乎很奇怪,这首先如何编译?.NET Framework中是否有一些特殊的技巧可以实现这一点?
public T this[int index]
,它实现了IReadOnlyList<T>
。 - undefinedFoo GetFoo()
和void SetFoo(Foo value)
的便利方式。接口只要求存在 get 方法,不关心是否存在 set 方法。 - undefined