我有这个方法
public enum Values
{
True= true,
False=false
};
public static string GetValues(bool values)
{
string status = "";
switch (values)
{
case(bool)UIHelper.Values.False:
}
}
我想将enum
作为boolean
。它说:
值无法作为bool转换。
我该怎么做才能拥有它boolean
?
答案 0 :(得分:4)
当然,你可以映射到0(Service
)和1(Serial
),但为什么要映射到那个?为什么不从一开始就使用bool?
public static class UnlPointValues
{
public const bool Serial = true;
public const bool Service = false;
}
public static string GetUnloadingPointValues(bool values)
{
string status = "";
switch (values)
{
case UIHelper.UnlPointValues.Serial:
}
}
答案 1 :(得分:0)
0
使用false
而1
使用true
代替Convert.ToBoolean
如果值不为零,则为true;否则,错误。
public enum UnlPointValues
{
Serial = 1, //true
Service = 0 //false
};
public static string GetUnloadingPointValues(bool values)
{
string status = "";
switch (values)
{
case (Convert.ToBoolean((int)UIHelper.UnlPointValues.Serial)):
break;
case (Convert.ToBoolean((int)UIHelper.UnlPointValues.Service)):
break;
}
}
答案 2 :(得分:0)
如果你必须坚持enum
,你可以实施扩展方法:
public enum Values {
True,
False,
// and, probably, some other options
};
public static class ValuesExtensions {
public static bool ToBoolean(this Values value) {
// which options should be treated as "true" ones
return value == Values.False;
}
}
...
// you, probably want to check if UIHelper.Values is the same as values
if (values == UIHelper.Values.ToBoolean()) {
...
}
答案 3 :(得分:0)
我在这里看不到你需要enum
。
public static string GetUnloadingPointValues(bool isSerial)
{
return isSerial ? "Serial" : "Service";
}
或者您要映射的string
值。