質問編集履歴

1

情報追加

2022/01/28 09:19

投稿

tosa123
tosa123

スコア8

test CHANGED
File without changes
test CHANGED
@@ -31,7 +31,7 @@
31
31
 
32
32
  しかしここで混乱するのが、上の認識が正しい場合、ドキュメントに書いてあるようなICollection<T>.Remove(T)という様な記述には若干違和感を抱いてしまいます。というのは、ICollection<T>のもつRemove(T)はあくまで、インターフェイスを実装しているクラスにRemoveメソッドの実装を強制させているだけで、ICollection<T>.Remove()そのものの内容は何もないように思えるからです。
33
33
 
34
- ここで改めて質問ですが、ドキュメントに書いてあるようなICollection<T>.Remove(T)において、ICollection<T>の部分は、あくまでICollection<T>インターフェイスを実装しているクラスがあてはまるというのが暗黙の了解的となっているような感じなのでしょうか。
34
+ ここで改めて質問ですが、ドキュメントに書いてあるようなICollection<T>.Remove(T)において、ICollection<T>の部分は、あくまでICollection<T>インターフェイスを実装しているクラスがあてはまるというのが暗黙の了解的となっているような感じなのでしょうか。もしくは、ICollectionインターフェイスを実装したclassをICollection型に変換した時のためにこうドキュメントに記述しているような感じなのでしょうか。
35
35
  (すみません、すごい当たり前のような事を聞いているかもしれません。)
36
36
 
37
37
  また、ICollection<T>.Remove(T)という様に記述できるのは、「明示的なインターフェイス実装」を利用するような感じで(この場合やや意味合いは異なる感じはありますが)、インターフェイスで実装を強制したメソッドには、インターフェイス名.メソッド名という風にアクセスできるからという認識で合っているのでしょうか。