I need to change my Enum in switch case statement like below
var en;
switch (RequestTypID.ToString())
{
case "15":
en = enum1;
break;
case "16":
en = enum2;
break;
case "14":
en = enum3;
break;
case "13":
en = enum4;
break;
default:
break;
}
and then pas it to a foreach loop like this
foreach (var status in Enum.GetValues(typeof(en)))
i`m geeting an error that says en must be initialize ? what type should i declare for en variable ? what type should i declare for status variable ?
alright i`ve added this line to the code and one problem is solved;
var en = typeof(enum1);
but now it say it cant find en reference in my for each loop ?
i also change my switch case to something like this
switch (RequestTypID.ToString())
{
case "15":
en = typeof(enum1);
break;
....
i`m geeting an error that says en must be initialize ?
This is reasonable, because this var en;
is not correct. When we want to declare something implicitly, we have to assign a value to it, when we declare it, in order the compiler infer it's type.
For instance, var n = 4;
. The 4
can be stored to a variable of type int
. Hence the compiler, when see this declaration understands that the tyoe of n int.
You can't create an variable with var
( var
isn't a type) and not assign a value to it. Var
means that compiler will evaluate it's type
seeing it's value, but here you don't have a value of the variable.So you need to assign a value to your variable en
.Assign a value which type is enum1, enum2, enum3, enum4 ..
You have to have another variable to the right side of the var
statement so the compile know what to expect.
You should do the following:
var en = YourEnum.Option1;
or
YourEnum en;
Enum.GetValues
require a Type as parameter. So simply declare you en
as Type
.
Type en = null;
you cannot declare it as var
without initializing it: compiler need to know what is the real type you want to use.
also, you have to change in your switch:
en = typeof(SomeEnum);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.