枚举类型的别名

本文关键字:别名 类型 枚举 | 更新日期: 2023-09-27 18:07:45

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

我需要为枚举属性设置不同的名称(如别名)。例如,对于"Activo",像"Activo"之类的东西。我还需要从值(3,或4)中获取字符串。

谢谢。

枚举类型的别名

将别名值转换为enum值:

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 value = 3;
string alias = EstadoToAlias((eEstado)value);

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

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

可以在enum中使用任何名称,但不能对string

使用enum

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

和使用enum如string

可以转换成字符串

exm .

strinf s=eEstado.Activo.ToString();
然后

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

中's'的值将不为3。它会"激活"我想这会对你有帮助的。

欢迎你的感谢

祝你好运