别名为枚举类型C#

时间:2013-04-04 22:42:23

标签: c# .net

public enum eEstado
{
    Active = 3,
    Inactive = 4
}

我需要为枚举属性设置不同的名称(如别名)。例如,对于“Activo”,类似“Activo”等。另外,我需要从值(3或4)中获取该字符串。

感谢。

3 个答案:

答案 0 :(得分:3)

要从别名转换为枚举值:

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);

答案 1 :(得分:3)

很难理解你究竟在问什么,但我认为这会有所帮助:

您可以在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"

}

答案 2 :(得分:-2)

您可以在枚举中使用任何名称,但不能将enum用于字符串

喜欢

public enum eEstado
{
// its an valid enum
    Activo = 3,  
    Inactivo = 4
}

和使用enum一样的字符串

你可以用字符串

转换它

EXM。

strinf s=eEstado.Activo.ToString();

然后

if(s==eEstado.Activo.ToString())
{
  // do sumthing
}

在这个's'的值不会是3。它将'Activo' 我认为它会帮助你

欢迎您的谢谢

祝你好运