代码之家  ›  专栏  ›  技术社区  ›  Dark Star1

为什么我的enum.Parse方法失败?

  •  0
  • Dark Star1  · 技术社区  · 15 年前

    我正在尝试根据字符串中的值动态设置枚举,到目前为止还不错,我不知道我做错了什么。我有以下代码:

    public enum TagLabels : long
        {
            TurnLeft = 0x0000000000000000000030A38DB1,
            TurnRight = 0x00000000000000000000307346CC,
            LiftApproach = 0x0000000000000000000012107A8D
        } 
    

    string someID = "0x0000000000000000000012107A8D"; 
    IDs = (TagLabels)Enum.Parse(typeof(TagLabels), someID ); //<== I get runtime error on this line
    

    我看不出我做的有什么不对。

    4 回复  |  直到 15 年前
        1
  •  4
  •   JSBÕ±Õ¸Õ£Õ¹    15 年前

    Parse旨在将符号名的字符串表示形式转换为枚举值,如中所示 Enum.Parse("TurnLeft")

    IDs = (TagLabels)long.Parse("0x0000000000000000000012107A8D");
    
        2
  •  2
  •   shahkalpesh    15 年前
    IDs = (TagLabels)Convert.ToInt64(someID, 16);
    

    编辑2:在Marc的建议后更改 Convert.ToInt32 Convert.ToInt64

        3
  •  1
  •   Shiraz Bhaiji    15 年前

    SomeID是一个字符串,枚举是一个长字符串。

        4
  •  0
  •   n8wrl    15 年前