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

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

谢谢。

4

3 回答 3

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);
于 2013-04-04T22:47:38.073 回答
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"

}
于 2013-04-04T23:23:52.727 回答
-2

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

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

并使用像字符串这样的枚举

您可以将其转换为字符串

出口。

strinf s=eEstado.Activo.ToString();

然后

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

在此 's' 的值不会 3 。它会“Activo”,我认为它会对你有所帮助

欢迎您的感谢

祝你好运

于 2013-04-04T22:48:08.233 回答