C♯相談室 Part18
■ このスレッドは過去ログ倉庫に格納されています
0324デフォルトの名無しさん
NGNGインターフェイスの明示的な実装というものだ。
インターフェイスのメンバを実装させる時に、
int IList.Add(object value) {...}
と言う風に宣言することで、「その型からみて」隠蔽されるようになる。
こうすることでシグネチャが同じインターフェイスメンバと独自メンバが共存できるようになるわけだ。
StringCollectionのインデクサなんかが一番利点を感じられるところだな。
隠蔽されているとは言え実装は強制されているわけで、ではどう呼ぶかというと
「そのインターフェイス型なら確かにそのインターフェイス用のメソッド・プロパティが実装されている」。
つまりIListとして=IListにキャストしてAddを呼ぶと上のメソッドが呼ばれることになる。
■ このスレッドは過去ログ倉庫に格納されています