1. ホーム
  2. c#

[解決済み] const 配列を宣言する

2022-02-05 16:17:39

質問

以下のような書き方は可能でしょうか?

public const string[] Titles = { "German", "Spanish", "Corrects", "Wrongs" };

解決方法は?

はい、しかし、あなたはそれを宣言する必要があります readonly の代わりに const :

public static readonly string[] Titles = { "German", "Spanish", "Corrects", "Wrongs" };

その理由は const は、コンパイル時に値が分かっているフィールドにしか適用できません。あなたが示した配列のイニシャライザーは、C#では定数式ではないので、コンパイラーエラーが発生します。

それを宣言する readonly は、実行時まで値が初期化されないので、この問題を解決します (ただし、配列が最初に使用される前に初期化されていることが保証されています)。

最終的に何を実現したいのかにもよりますが、enumを宣言することも検討してみてください。

public enum Titles { German, Spanish, Corrects, Wrongs };