web-dev-qa-db-ja.com

「割り当てられている式は一定である必要があります」を受け取ったとき

このようなものを使用する方法はありますか:

private const int MaxTextLength = "Text i want to use".Length;

次のようなものを使用するよりも読みやすく、エラーが発生しにくいと思います。

private const int MaxTextLength = 18;

テキストの長さを定数変数のソースにする方法はありますか?

25
michael
private readonly static int MaxTextLength = "Text i want to use".Length;
29
Davide Piras

使用する static readonlyの代わりにconst

定数はコンパイル時の定数でなければなりません

18
Gishu

残念ながら、constキーワードを使用している場合、「=」の右側の値はコンパイル時の定数でなければなりません。 "string" .lengthを使用するには、.NETコードを実行する必要があります。これは、コンパイル時ではなく、アプリケーションの実行時にのみ発生します。

フィールドをconstではなく読み取り専用にすることを検討できます。

11

値は定数である必要がありますか?あなたの場合、静的な読み取り専用は機能しますか?

private static readonly int MaxTextLength = "Text i want to use".Length;

これにより、最初の例と同様の方法でコードを記述できます。

2
jhamm

なぜこれを実行するのかわからないが、どうすればよいか...

private const string MaxText = "Text i want to use.";

private static int MaxTextLength { get { return MaxText.Length; } }
0
musefan