在java中可以做这样的事情
class {
final int x = Random.randomInt();
final int y = Random.randomInt();
}
...
switch (intVariable)
{
case x: break;
case y: break;
}
只要generateInt为final,就会编译。
C#中有等价物吗?
编辑:你可能会问为什么我不使用具体的值或枚举,但我有我的理由为什么值是随机的。 ;)
答案 0 :(得分:4)
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语句中指定变量或只读,它必须是常量表达式/编译时常量。
每个案例标签都指定一个常量值。
您可以使用if ... else来表示您的方案。