C# - 将一个枚举转换为另一个

fat*_*zzy 8 c# enums

我有2个枚举

public enum PersonTitle{
   Mr=0,Ms=1,Mrs=2
}

public enum SystemPersonTitles{
   Mr=0,Ms=1,Mrs=2
}
Run Code Online (Sandbox Code Playgroud)

如何将一个转换为另一个(没有Switch案例或If语句).

public void SystemPersonTitles TellWhatYouAre(PersonTitle personTitle){
//here
}
//usage
SystemPersonTitles systemPersonTitles = TellWhatYouAre(PersonTitle.Ms);
Run Code Online (Sandbox Code Playgroud)

Sas*_*cha 14

SystemPersonTitles newValue = (SystemPersonTitles)(int)PersonTitle.Mr;
Run Code Online (Sandbox Code Playgroud)

从头开始,我无法测试这个,因为我目前在我的OSX上.

  • 这将有效,但int cast是多余的 (6认同)

dtb*_*dtb 8

枚举只是美化整数,所以你可以简单地从一个到另一个:

public SystemPersonTitles TellWhatYouAre(PersonTitle personTitle)
{
    return (SystemPersonTitles)personTitle;
}
Run Code Online (Sandbox Code Playgroud)

请注意,此转换基于int值,而不是名称.