.NET TIPS

手軽にプロパティを実装するには?[C#、VS 2008、3.5]

デジタルアドバンテージ 一色 政彦
2008/05/01

 Visual Studio 2008(厳密には.NET Framework 3.5)のC#(=Visual C# 2008)では、「プロパティの自動実装」(Automatic Implementation of Property)という機能が搭載され、効率的にプロパティを実装できるようになっている。

 例えば従来(=Visual Studio 2005以前)では、プロパティは次のように記述していた。

private int myVar;

public int MyProperty
{
  get { return myVar; }
  set { myVar = value; }
}
Visual Studio 2005以前における通常のプロパティ記述

 これをVisual Studio 2008の「プロパティの自動実装」機能による記述に書き換えると、次のようになる。

public int MyProperty { get; set; }
Visual Studio 2008における「プロパティの自動実装」によるプロパティ記述

 要するに、Visual Studio 2005以前ではプロパティを実装する際に(基本的に)上記コードの「myVar」のようなフィールド変数が必要となるが、Visual Studio 2008ではこのようなフィールド変数を省略して純粋にプロパティのみを記述できるというわけだ。なお、「プロパティの自動実装」機能を使用したプロパティ(以降、自動実装するプロパティ)にデータを設定したり取得したりするには、フィールド変数が存在しないため、クラス内部からであっても常にプロパティを使う(=経由する)必要がある。

自動実装するプロパティに関する注意点

 自動実装するプロパティでは、前述のとおり、フィールド変数が省略されているが、これは文字通り「コード上の記述が省略されているだけ」で、コンパイル時に内部でフィールド変数が追加されている。この作業はVisual Studio 2008(.NET Framework 3.5)のコンパイラが自動的に行ってくれるため、開発者が意識する必要はない。

 また、Visual Studio 2008(のIDE)ではプログラムを.NET Framework 2.0や3.0にも対応させられるが(マルチターゲティング機能)、この際に.NET Framework 2.0や3.0を選択していても、自動実装するプロパティを利用したプログラムは正常にコンパイルできる(どうやらVisual Studio 2008のコンパイラは[対象のフレームワーク]として.NET Framework 2.0や3.0が選択されているときでも、「プロパティの自動実装」機能を働かせてくれるようだ)。なお、自動実装するプロパティを利用したコードを、C# 3.0のコンパイラ(=.NET Framework 3.5に付属するC#のコンパイラ。csc.exeファイル)でコマンドラインによりコンパイルする場合は問題ないが、C# 2.0のコンパイラ(=.NET Framework 2.0に付属する.NET Framework 2.0および3.0のC#のコンパイラ)でコマンドラインによりコンパイルすることはできない。このため、C# 2.0のコンパイラでコマンドラインによりビルドする可能性がある場合は、「プロパティの自動実装」機能を使用できないので注意してほしい。

自動実装するプロパティを手軽に記述するには?

 自動実装するプロパティを記述するには、コード・エディタ上で「prop」と入力してコード・スニペット機能を活用すると便利だ。実際の手順は、次の画面を参考にしてほしい。


(「prop」と入力すると、IntelliSenseが表示される)


([Tab]キーを押すと、自動実装するプロパティの記述が追加される)


([Tab]キーを押すことで、色が付いているカスタム部分へ移動できる)


自動実装するプロパティを手軽に記述する手順

 このようにして記述した自動実装するプロパティでは、getアクセサ(getter)とsetアクセサ(setter)の両方が追加されるが、この片方を消すようなことはできないので注意してほしい。読み取り専用や書き込み専用のプロパティを作りたい場合には、getアクセサやsetアクセサの前に「private」アクセス修飾子を記述して(=クラス外部からgetアクセサやsetアクセサにアクセスできないようにして)対応すればよい。End of Article

利用可能バージョン:.NET Framework 3.5
カテゴリ:Visual Studio 2008 処理対象:IDE
カテゴリ:C# 処理対象:言語構文

この記事と関連性の高い別の.NET TIPS
[ASP.NET]GridViewコントロールで各列の表示をカスタマイズするには?
コントロールのメンバ変数を自動生成させないようにするには?
[ASP.NET]GridViewコントロールでハイパーリンクを表示するには?
[ASP.NET]GridViewコントロールで画像を表示するには?
[ASP.NET]GridViewコントロールの削除ボタンで確認メッセージを表示するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ


- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る
- PR -

ホワイトペーパーTechTargetジャパン

ソリューションFLASH

「ITmedia マーケティング」新着記事

2014年、アジアで流行しそうなデジタル8分野を予測
2014年残り9カ月、APAC地域で流行すると思われるデジタルトレンドは何か。ClickZ.com で...

東京カンテイ、「Oracle Database Appliance」を導入 ―― 不動産関連のビッグデータ分析基盤を構築
日本オラクルとアシストは4月16日、土地/建物など不動産データの情報提供サービスを展開...

消費者のリアルタイムな行動を追え――複雑化する消費者心理を把握する手法「RET」とは?
宣伝会議が主催する「AdverTimes DAYS」が4月15日〜16日、東京・千代田区で開催された。...