C# assign const member with function

c#, java

Solution

with const you can't do that, it has to be a compile time constant.

You may use readonly, something like:

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

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

EDIT: Since the question is now edited and asks with reference to case expression in switch statement. You can't specify a variable or readonly in the case statement, it has to be constant expression/compile time constant.

From MSDN - Switch

Each case label specifies a constant value.

You may use if...else for your scenario.

Problem

in java its possible to do something like this ``` class { final int x = Random.randomInt(); final int y = Random.randomInt(); } ``` ... ``` switch (intVariable) { case x: break; case y: break; } ``` as long as generateInt is final, this compiles. is there an equivalent in C#? edit: you might ask why i dont use concrete values or enums, but i have my reasons why the values are be random. ;)

Original source