readonly

readonlyは、読み取り専用を表すキーワード。

readonly キーワード - C# リファレンス | Microsoft Docs
定数 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C

constと違い、コンストラクタでは値のセットができる。

空のプロジェクトで、Class1.csは、

コンストラクタで配列のsizeをセットできるようにする。

MainClass.csは、

素数5と要素数10という形で指定。

size = 5
intArray[0] = 0
intArray[1] = 1
intArray[2] = 2
intArray[3] = 3
intArray[4] = 4
size = 10
intArray[0] = 0
intArray[1] = 1
intArray[2] = 2
intArray[3] = 3
intArray[4] = 4
intArray[5] = 5
intArray[6] = 6
intArray[7] = 7
intArray[8] = 8
intArray[9] = 9
続行するには何かキーを押してください . . .

こうなる。

もし、

    // 配列の出力
    public void print()
    {
        // これは不可.
        size = 20;  // readonlyなので, あとから変更不可.

        // サイズ出力
        Console.WriteLine("size = " + size);    // sizeを出力.
        
        // 配列に値を入れる.
        for (int i = 0; i < size; i++)    // size分繰り返す.
        {
            intArray[i] = i;    // i番目にiを入れる.
        }

        // 配列の表示
        for (int i = 0; i < size; i++)    // size分繰り返す.
        {
            Console.WriteLine("intArray[" + i + "] = " + intArray[i]); // i番目を出力.
        }
    }

と書くと、

読み取り専用なのでビルドエラー
読み取り専用なのでビルドエラー

こうなるので、初期化はコンストラクタでする。

Sample/cs/readonly/readonly/src/readonly at master · bg1bgst333/Sample · GitHub