「C Sharpの基礎 - 拡張メソッド」の版間の差分

ナビゲーションに移動 検索に移動
1行目: 1行目:
== 概要 ==
== 概要 ==
C#の拡張メソッドは、既存のクラスやインターフェースに新しいメソッドを追加する機能である。<br>
C#の拡張メソッドは、既存のクラスやインターフェースに新しいメソッドを追加する機能である。<br>
この機能により、ソースコードにアクセスできない型やシールされた型に対しても機能を拡張できる。<br>
この機能により、元のソースコードを変更せずに、既存の型に機能を追加することができる。<br>
<br>
また、ソースコードにアクセスできない型やシールされた型に対しても機能を拡張することができる。<br>
<br>
拡張メソッドの特徴を以下に示す。<br>
* 元のクラスを変更せずに新しいメソッドを追加できる。
* インスタンスメソッドのように呼び出せる。
* 名前空間を使用して拡張メソッドの可視性を制御できる。
* 継承やインターフェースの実装よりも柔軟である。
<br>
ただし、制限事項があることに注意する。<br>
* 拡張メソッドは既存のメソッドをオーバーライドできない。
* 拡張メソッド内からプライベートメンバにアクセスできない。
<br>
拡張メソッドの主な用途を以下に示す。<br>
* ユーティリティ関数の追加
* LINQ (Language Integrated Query) の実装
* ソースコードの可読性と再利用性の向上
<br>
<u>※注意</u><br>
<u>過剰な使用は避け、適切な場合にのみ使用すること。</u><br>
<u>名前の衝突に注意が必要である。</u><br>
<br>
<syntaxhighlight lang="c#">
// 例 :
public static class StringExtensions
{
    public static int WordCount(this string str)
    {
      return str.Split(new char[] { ' ', '.', '?' },
                        StringSplitOptions.RemoveEmptyEntries).Length;
    }
}
// 使用方法
string text = "Hello, world! How are you?";
int count = text.WordCount();  // 5
</syntaxhighlight>
<br><br>
<br><br>


案内メニュー