SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

C# 3.0の新しい構文:デザインガイドライン

C# 3.0に追加された新しい構文について

オブジェクト初期化子

 オブジェクト初期化子は、C#を他の多くの高級言語と肩を並べる存在にするために当初から用意すべきだった機能です。CやC++とは異なり、C#はこれによって総合的な初期化機能を持つことになりました。この機能はおそらく、LINQをサポートするために追加された機能の中で最も広く役立つでしょう。Microsoftがオブジェクト初期化子を追加したのは、LINQステートメントが単一ステートメントだからです。これまでは、1つのステートメント内で実行できるものでなければ、オブジェクトをクエリ結果で初期化することはできませんでした。

使用時のヒント

  • 1ステートメント1プロパティ方式でオブジェクトまたはエレメントを初期化するよりも、オブジェクト初期化子を優先する。

自動プロパティ

 自動プロパティは、バッキングストア用に単一フィールドをラップするプロパティを書くときの面倒な作業を回避するための構文糖です。C# 2.0ではプロパティを次のようにして実装しました。

private int age;
public int Age
{
   get
   {
      return age;
   }
   set
   {
      age = value;
   }
}

 それほど長いコードではありませんが、多くのプロパティを実装する必要がある場合は面倒になるでしょう。C# 3.0では、次のような方法で、バッキングストア用のフィールドを宣言せずにプロパティを作成できます。

public int Age
{
   get ;
   set ;
}

 バッキングストアで使われるフィールドはコンパイラによって自動生成されますが、これを直接操作することはできません。このプロパティへのすべてのアクセスは、プロパティのgetterメソッドとsetterメソッドを介して行う必要があります。

使用時のヒント

  • パブリックフィールドよりも自動プロパティを優先する。
  • パフォーマンスが重視される場合は自動プロパティを避ける。

 Microsoftは特定の理由から多くの新しいC# 3.0の構文を作成しましたが、開発者は適用可能であればいつでも新機能を使用できます。このガイドラインでは、新しいC# 3.0の構文を使用するときに陥りがちな落とし穴とそれを回避するために役立つアドバイスを示しましたが、絶対に守らなければならない規則ではありません。状況によっては、明確な理由を持ってこのガイドラインに違反することもあるでしょう。しかし一般的には、新しいC# 3.0の構文の理解を深め、より良いコードを書くためにこのガイドラインが役に立つはずです。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Peter Ritchie(Peter Ritchie)

17年以上にわたってソフトウェア開発のプロフェッショナルとして働く。コンピュータソフトウェアとの関わりはさらに長く、最初のコンピュータはAtari 800。現在はPeter Ritchie Inc. Software Consulting Co.の社長を務め、カナダの首都地域でWindowsベースのソフトウェア開発サービスを提供している。ソフトウェア開発に関する発言とアドバイスはブログで閲覧できる。オンライン開発者コミュニティへの貢献によりMicrosoft MVP-Visual C# award(2006-2007年度)を受賞し、現在もVisual C# Developer Centerに貢献している。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2319 2008/03/26 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー