連載:[完全版]究極のC#プログラミングChapter14 拡張メソッド川俣 晶2010/03/01 |
|
|
14.2 Allメソッドを利用するのに必要な記述
拡張メソッドを使うためには下準備が必要になる。それを有効にするために、“スイッチを入れる”必要があるのだ。A君のプログラムがコンパイルできなかったのは、“スイッチ”が入っていなかったからである。
次の1行をソースコードの先頭に追加すればそのスイッチがオンになり、Allメソッドは使用できるようになる。
|
しかし、3.0より前のC#にどっぷり漬かったプログラマーに対して、これはあまりに難題だ。なぜかといえば、usingキーワードとはC# 1.0から存在するあたりまえの機能であり、名前の短縮形を与えるために使われるだけだった。使用できる機能をオン/オフする役割など持っていなかったはずだ。それが“スイッチ”としての機能を持つなど、容易には想像できないだろう。
しかも、この1行は、Visual Studio 2008で自動的に記述されるため、その重要性に気づきにくい。しかし、これを含まないVisual Studio 2005のソースコードを持ち込めば、即座に凶悪な牙をむくわけである。
この強力だが難解な拡張メソッドを使いこなせるようになろう。わかってしまえば何も難しいものではない。
INDEX | ||
[完全版]究極のC#プログラミング | ||
Chapter14 拡張メソッド | ||
1.14.1 C# 2.0プログラマーの悲劇 | ||
2.14.2 Allメソッドを利用するのに必要な記述 | ||
3.14.3 拡張メソッドの概要 | ||
4.14.4 スイッチなしで機能する例 | ||
5.14.5 sealedクラスを拡張する | ||
6.14.6 拡張メソッドはオブジェクト内部に手出しできない | ||
7.14.7 拡張メソッドはオブジェクトの振る舞いを変更できない | ||
8.14.8 拡張メソッドが安全である理由 | ||
9.14.9 メソッド呼び出しと型の関係 | ||
10.14.10 thisの正体 | ||
11.14.11 拡張メソッドを使用すべきとき | ||
12.14.12 コレクションに拡張されるメソッド | ||
13.14.13 なぜ「using System.Linq;」なのか?/練習問題 | ||
「[完全版]究極のC#プログラミング」 |
Insider.NET フォーラム 新着記事
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|