「C Sharpの基礎 - インターフェイス」の版間の差分

331行目: 331行目:
<br>
<br>
例えば、標準ライブラリのIEquatable<T>インターフェイス(System名前空間)について、異なる型・引数で複数実装できる。<br>
例えば、標準ライブラリのIEquatable<T>インターフェイス(System名前空間)について、異なる型・引数で複数実装できる。<br>
AとBの2つのクラスがある時、IEquatable<A>とIEquatable<B>という2つの実装を持つことができる。<br>
AとBの2つのクラスがある時、IEquatable<A>とIEquatable<<nowiki>B</nowiki>>という2つの実装を持つことができる。<br>
<br>
<br>
具体的な用途として、以下のような場面で有効である。<br>
具体的な用途として、以下のような場面で有効である。<br>
337行目: 337行目:
* Shapeクラスから派生した矩形型Rectangleクラスがある。<br>Rectangleクラスは、縦横の両方の比較で等値判定する。
* Shapeクラスから派生した矩形型Rectangleクラスがある。<br>Rectangleクラスは、縦横の両方の比較で等値判定する。
* Shapeクラスから派生した円型Circleクラスがある。<br>Circleクラスは、半径の比較で等値判定する。
* Shapeクラスから派生した円型Circleクラスがある。<br>Circleクラスは、半径の比較で等値判定する。
* Shapeクラスは、矩形同士、円同士でのみ等値判定する。型が異なる場合は、その時点で不一致となる。
* Shapeクラスは、矩形同士、円同士でのみ等値判定する。<br>型が異なる場合は、その時点で不一致となる。
<br>
<br>
この条件下において、各クラスに以下のようなインターフェイスを持つことができる。<br>
この条件下において、各クラスに以下のようなインターフェイスを持つことができる。<br>