ホームに戻る
出典 :
拡張メソッドを作成するには?[C#/VB]:.NET TIPS - @IT
目次 :

拡張メソッドとは

既存のクラス定義に手を加えることなく、インスタンスメソッドを疑似的に追加できる機構のこと。
以下に留意する必要がある。

メソッドの定義

CheckedListBox に拡張メソッドを追加する場合を考える。
// 拡張メソッド実装用の静的クラス static class ExtensionMethods { // 拡張メソッド // CheckedListBox の全項目のチェック状態を切り替える public static void CheckAllCheckBoxes(this CheckedListBox source, bool value) { for (int i = 0; i < source.Items.Count; i++) { source.SetItemChecked(i, value); } } }
拡張メソッド CheckAllCheckBoxes() の第1引数 source は this 修飾された CheckedListBox であり、呼び出された際に暗黙的にメソッドに渡される。

メソッドの呼び出し

checkedListBox1.CheckAllCheckBoxes(true);
拡張メソッドは CheckedListBox のインスタンスメソッドとして呼び出すことができる。
第1引数にはインスタンス checkedListBox1 自身が自動的に渡されるため、実引数としては記述しない。

余談

拡張メソッドは.NETの機能であるため、Visual Basicでも使用できる。詳細は出典元を参照。