在传统方式中,我们将枚举转换为C#中的int,如:
int res = (int)myEnum;
Run Code Online (Sandbox Code Playgroud)
除了静态类型转换之外还有其他方法可以将枚举转换为int吗?
更新:问题是从枚举到int而不是从int到枚举报告重复.
鉴于C#enum:
public enum options: byte
{
yes = 0,
no = 22,
maybe = 62,
foscho = 42
}
Run Code Online (Sandbox Code Playgroud)
如果给出字节62,你如何检索字符串'maybe'?
从应用程序中的另一个层,我可以获取枚举类型的名称和整数值.如何使用此数据来获取该枚举的该值的字符串表示形式.
例如,如果我有一个枚举:
public enum Cheese
{
Edam = 1,
Cheddar = 3,
Brie = 201,
RedLeicester = 1001
}
Run Code Online (Sandbox Code Playgroud)
我可用的数据是
string dataType = "Cheese";
int dataValue = 3;
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到结果:
"Cheddar"
Run Code Online (Sandbox Code Playgroud) 我有这个代码,我想知道。是否可以将其更改为使用新的 C# 表达式作为消除对break;
switch (reposition)
{
case (int)POS.First: cIndex = 0; break;
case (int)POS.Last: cIndex = cIndexLast; break;
case (int)POS.Prev: cIndex--; break;
case (int)POS.Next: cIndex++; break;
}
reposition = null;
Run Code Online (Sandbox Code Playgroud)
对霍根的回应
我有一个调用的枚举类Gender,我在这里有值
public enum GENDER
{
MALE = 1,
FEMALE = 2,
OTHERS = 3,
}
Run Code Online (Sandbox Code Playgroud)
在我的业务对象中,我刚为此创建了一个属性
public GENDER Gender
{
get
{
return gender;
}
set
{
gender = value;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的数据库中它的类型integer.为此,我尝试Gender通过名称分配add函数中的值Gender.但它显示错误.是否可以将枚举转换为整数,以便它自动获取值.
有人可以帮我从这里出去吗....
我的代码是一个需要输出不同状态代码的服务,如下所示:
if(something is valid)
{
if(this is found)
return "200";
else
return 300;
}
else
return "100";
Run Code Online (Sandbox Code Playgroud)
有许多这样的状态代码,并且也出现在应用程序的不同位置.所以,我想在一个地方将它们声明为常量并使用它们,以免硬编码字符串.
就像是
public struct StatusCodes
{
public static string 100 = "100";
public static string 200 = "200";
}
Run Code Online (Sandbox Code Playgroud)
并能够用它作为
else return StatusCodes.100
Run Code Online (Sandbox Code Playgroud)
是否有标准做法或良好的方法.