C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でローカル変数をfinalにする方法|readonlyキーワードの使い方

Javaにあるfinalキーワードのような「変更不可」なローカル変数を作りたい場合、C#ではfinalキーワードが存在しないため、代わりにreadonlyキーワードを使用します。

readonlyキーワードとは

readonly(読み取り専用)を付けた変数には、値を一度だけ代入することができます。

readonlyとして宣言されたフィールドは、オブジェクトの構築時(コンストラクタ内)にのみ値を設定でき、それ以降は変更することができません。この仕組みにより、意図しない値の書き換えを防ぎ、プログラムの安全性と保守性を高めることができます。

サンプルコード

以下の例では、DepartmentクラスのempCountフィールドをreadonlyとして宣言しています。一度値が代入されると、その後は変更できません。

class Department {
    readonly int empCount;

    public Department(int empCount) {
        this.empCount = empCount; // 構築時にのみ代入可能
    }

    void ChangeCount() {
        // empCount = 150; // コンパイルエラーになる
    }
}

ポイントまとめ

  • C#にfinalキーワードはないため、readonlyを使用する
  • readonlyフィールドへの代入は、宣言時またはコンストラクタ内でのみ可能
  • コンストラクタ以外の場所で再代入しようとすると、コンパイルエラーが発生する
  • 定数のように扱いたい場合はconstも選択肢だが、実行時に値を決めたい場合はreadonlyが適している
  1. Dockerを使ってローカル環境にKibanaインスタンスを構築する手順

    本記事では、リモートのElasticsearchクラスタに接続するローカルKibanaインスタンスの構築手順を、ステップごとにわかりやすく解説します。ObjectRocket for Elasticsearchには無料のホスト型Kibanaが付属していますが、ローカルマシン上でKibanaを実行することで、より柔軟な運用が可能になります。また、ホスト型Kibanaを提供していない環境やサービスを利用している場合でも、このガイドに沿って進めれば、自分のマシン上で簡単にKibanaを動かせるようになります。なぜローカルでKibanaを動かすのか?他のKibanaユーザーと共有したくない独自のビジュ

  2. Windows 10 で環境変数を設定・編集する方法を初心者向けに解説

    環境変数とは、PC上で動作するプログラムの設定に使われるグローバルな値のことです。名前だけ聞くと難しく感じられますが、実際には「さまざまなアプリが共通して参照できる設定情報の保管場所」と考えると分かりやすいでしょう。 環境変数にはユーザーごとに紐づくものがあり、ユーザーアカウントが異なれば設定内容も変わります。その一方で、「%windir%」のようなシステム全体で共通の変数も存在します。たとえば「%windir%」は、Windowsがインストールされているディレクトリ(例:「C:\Windows」)を常に指します。アプリ側ではこの値を直接ハードコードせず、「%windir%」を参照することでW