Because List<T>
implements all of the necessary methods/properties/etc. (and then some) of IReadOnlyList<T>
. An interface is a contract that says "I can do at least these things."
The documentation for IReadOnlyList<T>
says it represents a read-only collection of elements.
That's right. There are no mutator methods in that interface. That's what read-only means, right? IReadOnlyList<T>
is used in the "typical" (contract) way, not as a marker.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…