.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. C# 6.0とは?静的インポート・自動プロパティ初期化子・nameof 演算子

C# 6.0とは?静的インポート・自動プロパティ初期化子・nameof 演算子

  • C#
  • プログラミング言語
公開日時:   更新日時:
C# 6.0とは?静的インポート・自動プロパティ初期化子・nameof 演算子
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>
    システム
    エンジニア
    C# 6.0から追加された新機能では、ソースコードの記述が簡単になると聞きました。どのような機能があるのですか。
    プロジェクト
    マネージャー
    そうですね。記述が簡単になりコードがスッキリとした印象になりました。

    C# 6.0とは?


    C# 6.0は2015年7月にリリースされたC#のバージョンです。この記事を執筆している時点でC#は9.0までがリリースされていますが、6.0では重要な機能が追加されているのでそこに絞って解説します。

    特にC# 6.0はソースコードの記述を簡潔にできる機能が多く追加されています。この記事ではC# 6.0で追加された主な機能について分かりやすく紹介するので、是非ご覧下さい。

    静的インポート

    C#で標準で使える静的メンバーは、従来は以下のように「クラス名.メンバー名」で指定する必要がありました。

    C# 6.0からはusing staticを使うことで以下のようにメンバー名だけで呼び出すことができます。ソースコードがすっきりしますね。

    なお実行結果は「3.141592653589793」が表示されます。

    例外フィルター

    C# 6.0の例外フィルターとはtry~catch文で、when節でキャッチする例外に条件を付けることが出来る機能です、以下のように利用します。

    実行結果は「例外bが発生しました。」と表示されます。例外発生時に渡されたメッセージをwhenで判定できることがわかりますね。

    自動プロパティ初期化子

    C#は3.0からクラスのプロパティの宣言を「プロパティ名 { get; set; }」といった簡潔な記述ができるようになりました。これを自動プロパティと言います。しかしプロパティに初期値を持たせたい場合は自動の記述をやめるか、以下のようにコンストラクタで代入する必要がありました。

    C# 6.0からは以下のように自動プロパティの宣言に「= 初期値;」を記述するだけで、初期化できるようになりました。

    式形式のメンバー

    C# 6.0からは、クラスのメンバーのメソッドが一つの式のみの場合は「=>」を使って簡潔に記述できるようになりました。例えば以下のような場合は、

    Testクラスを以下のように記述することができます。記述の量を減らすことができますね。なお実行結果は「12」が表示されます。

    Null 条件演算子 その1

    C#では「対象がnullではない時だけ処理をして、nullの場合はnullを返す」と言う処理が多くなります。その結果nullチェックのif文ばかりになってしまいます。以下がその例です。

    Null 条件演算子 その2

    上の例は生成したTestクラスのstringのメンバーの長さを取得して表示しますが(実行結果は「3」です)、StrLengthメソッド内部ではクラスや文字列がnullでないかif文でチェックしてくどくなっています。C# 6.0ならNull条件演算子でTestクラスが以下のように簡潔になります。

    Null 条件演算子 その3

    Null条件演算子はインデクサーに対しても使えます。以下の実行結果は「ス」になります。「テスト」を0から数えて1番目の文字ということですね。

    文字列補間

    C# 6.0以前は、文字列に変数の値を埋め込む場合、以下のようにFormatメソッドを利用していました。

    実行すると「数字の3と4。」と表示されます。C# 6.0からこの記述を以下のように$を使って簡潔に書くことができるようになりました。

    nameof 演算子

    C# 6.0からnameofという演算子が追加され、クラスやフィールドなどの名前を文字列として取得できるようになりました。デバッグに活用できますね。以下のように利用します。

    実行結果は以下の通りです。

    Object
    String
    Test
    value
    DispValue

    システム
    エンジニア
    using staticでメンバー名を呼び出すことができ、またNull 条件演算子が簡潔になり、記述しやすいことが良くわかりました。
    プロジェクト
    マネージャー
    コードが簡潔に記述できると、すぐチェックができ、作業がしやすくなりますね。

    C# 6.0の新機能を活用しよう

    C# 6.0の主な新機能を解説しましたが、ご理解頂けましたでしょうか。

    この記事を執筆した時点では9.0がリリースされているのでどれも新しい機能とは言えませんが、知らないものもあったかもしれませんね。是非活用してください。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    C#新着案件New Job