3

Javaでは、このようなことをすることが可能です

class {
    final int x = Random.randomInt();
    final int y = Random.randomInt();
}

...

switch (intVariable)
{
    case x: break;
    case y: break;
}

generateInt が final である限り、これはコンパイルされます。

C#に相当するものはありますか?

編集:具体的な値や列挙型を使用しない理由を尋ねるかもしれませんが、値がランダムである理由があります。;)

4

1 に答える 1

6

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

次のようなreadonlyを使用できます。

public class yourClass
    {
        public readonly int x = generateInt();

        public static int generateInt()
        {
            return DateTime.Now.Millisecond; // or any other method getSomeInt();
        }
    }

編集: 質問が編集され、switch ステートメントの case 式を参照して質問するようになったため。case ステートメントで変数または読み取り専用を指定することはできません。定数式/コンパイル時定数である必要があります。

MSDNから- スイッチ

各ケース ラベルは定数値を指定します。

シナリオに if...else を使用できます。

于 2012-07-18T11:47:54.970 に答える