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

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. C#のconstで定数を宣言する方法。static readonlyとの違いとは

C#のconstで定数を宣言する方法。static readonlyとの違いとは

  • C#
  • プログラミング言語
公開日時:   更新日時:
C#のconstで定数を宣言する方法。static readonlyとの違いとは
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    プログラミング開発の経験がある方でしたら、定数を活用してコーディングを行ったこともあるでしょう。定数は非常に便利です。C#ではこの定数を宣言するのに用いる命令が「const」です。この記事では、constの簡単な使い方や同じような定数として扱うことが可能なstatic readonlyとの違いについても解説していきます。

    プログラマー
    定数は便利ですよね。一度宣言してしまえば、インスタンスごとに宣言する必要もありませんし、固定で設定するべき値がある場合には、積極的に活用しています。
    プロジェクト
    リーダー
    定数は上手に活用していきたい命令のひとつです。グローバル領域だけでなく、constの宣言はローカル領域でも行えます。グローバル、ローカルで使い分けて活用していきましょう。

    実行環境
    ・Visual Studio Community 2017

    C#で使う定数とは?

    定数とは値が固定されていて、変更しないと分かっている文字列や数値などを指します。定数に設定されている値は、アプリケーション実行中に変わることはありません。
    この定数を使用する目的には、マジックナンバーや文字列定数入力ミスの削減が挙げられるでしょう。

    C#ではconstを宣言して、定数を利用できます。constの特徴として挙げられるのが、固定の値が設定されるため、インスタンスが異なっても常に同じ値となることです。インスタンスごとに値を設定する必要がないので、いわば暗黙的なstaticといえます。

    また、コンパイル時に値を埋め込むタイプの定数(コンパイル時定数)ですので、定数の型はコンパイル時に確定できるもの(int, float, double, bool, char, string)でなければなりません。

    constの値を変更した場合には、リビルドする必要があります。dllだけを差し替えても反映されません。

    constによる定数の宣言方法

    それでは早速、constを宣言するプログラミングを行っていきましょう。宣言するだけで定数を利用できるため非常に簡単です。

    実行結果
    定数の宣言結果

    static readonlyの使い方。constとの違いとは?

    C#では定数を利用する際にconstを利用します。ですが、static readonlyという命令が必要な場面もあります。
    static readonlyが役立つ場面には、以下の例が挙げられます。

    • ・定数値が必要だが、その値の型がconst宣言では使用できない場合
    • ・その値をコンパイル時に計算できない場合

    constは対象がprivateである場合や、高いパフォーマンスが求められていてかつ変更されることがない場合に多く使用されます。一方で、変更される可能性のある値を定数として宣言する場合には、static readonlyを使用することがおすすめです。

    以下、static readonlyの活用方法です。

    実行結果
    static readonly実行結果

    プログラマー
    「定数といえばconst」と勝手に決め込んでいました。値が変更される可能性がある場合には、static readonlyを上手に使ってコーディングを進めていきます。
    プロジェクト
    リーダー
    もちろん基本はconstを宣言し、定数を利用して大丈夫です!しかし、定数の宣言方法は多く覚えておいて損はないです。static reeadonlyの活用方法もこの機会にしっかりと知識として備えておきましょう。

    constとstatic readonlyは使い分けが重要

    constはコンパイル時定数の扱いですが、readonlyは実行時定数の扱いとなります。constの方が、実行速度はやや速いですが、インスタンスをnewした結果を割り当てることはできません。それぞれで長所と短所がありますので、そこは開発者が自らの判断でどちらを利用するべきかを決めていく必要があります。柔軟にconstとstatic readonlyを使い分けて、良質なソースコードを作成していきましょう。

    >>>C#の案件を探すならFEnet .NET Navi

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

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

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

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

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

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

    • 充実した研修制度

      充実した研修制度

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

    • 資格取得を応援

      資格取得を応援

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

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

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

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

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

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

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

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

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

    C#新着案件New Job