public enum eEstado
{
Active = 3,
Inactive = 4
}
我需要为枚举属性设置不同的名称(如别名)。例如,对于“Activo”,像“Activo”等等。另外我需要从值(3或4)中获取该字符串。枚举类型C的别名#
谢谢。
public enum eEstado
{
Active = 3,
Inactive = 4
}
我需要为枚举属性设置不同的名称(如别名)。例如,对于“Activo”,像“Activo”等等。另外我需要从值(3或4)中获取该字符串。枚举类型C的别名#
谢谢。
要从别名转换为枚举值:
public static eEstado AliasToEstado(string alias)
{
switch(alias)
{
case "Activo": return eEstado.Active;
case "Inactivo": return eEstado.Inactive;
default: throw new ArgumentException(alias);
}
}
从一个枚举值转换为一个别名:
public static string EstadoToAlias(eEstado value)
{
switch(value)
{
case eEstado.Active: return "Activo";
case eEstado.Inactive: return "Inactivo";
default: throw new ArgumentException(value);
}
}
从int值转换成一个别名:
int value = 3;
string alias = EstadoToAlias((eEstado)value);
您可以在枚举中使用任何名称,但不能使用枚举字符串
像
public enum eEstado
{
// its an valid enum
Activo = 3,
Inactivo = 4
}
,并使用枚举像串
,你可以把它转换成字符串
EXM。
strinf s=eEstado.Activo.ToString();
然后
if(s==eEstado.Activo.ToString())
{
// do sumthing
}
在此
的'不会3的值。它会“ACTIVO” 我认为它会为
欢迎你帮助你的感谢的
好运
这既不支持多个字符串值,也不会将int转换为字符串。 (不,比较枚举与字符串表示形式的每种可能性都不计算在内) – 2013-04-04 22:49:35
你想'Activo'是3吗? – 2013-04-04 22:52:12
这是很难明白你问什么,但我认为这将帮助:
您可以对具有相同值的多个名称的enum
像:
public enum Status
{
Undefined = 0,
Active = 1,
Inactive = 2,
Default = Active
}
哟ü可以从一个字符串解析与
static void Main(string[] args)
{
Status status = Status.Default;
string new_status = "Inactive";
status = (Status)Enum.Parse(typeof(Status), new_status);
Console.WriteLine(status.ToString());
// prints "Inactive"
status = (Status)1;
Console.WriteLine(status.ToString());
// prints "Active"
}
看到http://stackoverflow.com/questions/630803/associating-enums-with-strings-in-c-sharp – mpen 2013-04-04 22:44:44
@马克,的确,但我会建议答案#2。最高票数的答案是奇怪无关的。 – 2013-04-04 22:45:32
至于OP的问题的第二部分,答案是((eEstado)3).ToString()'。 – 2013-04-04 22:46:23