はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】配列の定数を宣言する

はじめに

今回は配列の定数を宣言する記事になります!

配列を定数として扱いたくて、配列をconst宣言をしたところエラーがでてきてしまいました

今回はその対処法を紹介したいと思います。

static readonlyを使う

一番シンプルな配列の定数の宣言方法はstatic readonlyを使う方法だと思います。

実際にみてみましょう。

using UnityEngine;

public class Test : MonoBehaviour
{
    private static readonly string[] NAMES = { "hanachiru", "slime" };

    private void Start()
    {
        foreach(var name in NAMES)
        {
            Debug.Log(name);     //hanachiru  slime
        }
    }
}

ReadOnlyCollectionを使う

上のサンプルでも良いのだが、例えば外部に公開するといった場合はReadOnlyCollectionを用いたほうが安全といえるかもしれません。

これを用いた例は以下の通りです。

using UnityEngine;
using System.Collections.ObjectModel;   //ReadOnlyCollectionを使うため
using System;                           //Arrayを使うため

public class Test : MonoBehaviour
{
    public static readonly ReadOnlyCollection<string> NAMES = Array.AsReadOnly(new string[] { "hanachiru", "slime" });

    private void Start()
    {
        foreach(var name in NAMES)
        {
            Debug.Log(name);     //hanachiru  slime
        }
    }
}

さいごに

これで配列を定数で宣言することができました。

配列の定数の宣言ではconstは使えない、覚えておいて損はないと思います!