13,228
回編集
(→概要) |
|||
| 43行目: | 43行目: | ||
== 拡張メソッドの実装 == | == 拡張メソッドの実装 == | ||
# | # スタティッククラスの作成 | ||
# | #: 拡張メソッドはスタティッククラスの中で定義される。 | ||
# | #: これは、拡張メソッドがどのクラスにも属さないため、スタティッククラスが適しているためである。 | ||
#: また、スタティッククラスは、クライアントコードから参照できる必要がある。 | |||
#: <br> | |||
# スタティックメソッドの作成 | |||
#: 拡張メソッドはスタティックメソッドとして定義される。 | |||
#: 最初のパラメータ (第1引数) の型名の前には、必ず、<code>this</code>キーワードを用いて対象の型を指定する。 | |||
#: これにより、その型のインスタンスでメソッドを呼び出すことが可能になる。 | |||
#: <br> | |||
# 拡張メソッドの使用 | |||
#: 拡張メソッドは、通常のインスタンスメソッドと同様に呼び出すことができる。 | |||
#: ただし、異なる名前空間に定義している場合は、<code>using</code>ディレクティブを使用して、拡張メソッドが定義されている名前空間をインポートする必要がある。 | |||
<br> | <br> | ||
名前の衝突において、呼び出し元のクラスで定義されているメソッドが優先されるため、拡張メソッドが使用されることはない。<br> | 名前の衝突において、呼び出し元のクラスで定義されているメソッドが優先されるため、拡張メソッドが使用されることはない。<br> | ||