【问题标题】:How to create enum with both string and int (string) values如何使用字符串和 int(字符串)值创建枚举
【发布时间】:2020-02-14 04:43:45
【问题描述】:

我需要检查一些条件,字符串值可以是“12234”、“12345”、“54321”、“testValue” 我想用这些值创建一个枚举,并尝试在我的 if 条件下解析枚举值,但是我们可以用下面的字符串和 int 值创建枚举吗?

其他选项是数组,但我想检查我们是否可以创建枚举。

public enum test
{
    12234,12345,54321,testValue
}

【问题讨论】:

  • 听起来像是滥用枚举和 XY 问题,为什么需要这个?或者,您可以使用属性,将数据存储在其中,并使用反射来查询它并帮助返回枚举。我想你也可以使用字典,并映射到一个枚举,或者只是一个带有常量的老式开关
  • 枚举名称只能以字母开头。您可以将这些数字分配给名称,但不能将数字分配给名称。这不是实例化枚举类的有效方法。
  • 无字符串:枚举类型(或枚举类型)是由一组基础整数类型的命名常量定义的值类型。
  • 我不确定这里的目标是什么,但你可以这样做: public enum test { NUM_12234,NUM_12345,NUM_54321,testValue } 但是,在这种情况下 testValue 不是字符串,它是一个整数的名称。
  • 嗨 Roshan,跟进检查下面的答案是否有助于澄清您在帖子中的问题,如果没有完全回答,您可以分享您的疑问,我会尽力澄清它们;)跨度>

标签: c# .net .net-core enums


【解决方案1】:

枚举必须是整数类型,所以不能将字符串作为枚举常量

下面的枚举示例


 enum TestConditions
 {
   One = 12234,
   Two = 12345,
   Three=54321,

 }

 //Enum 

 Console.WriteLine((int)TestConditions.One); //Output = 12234
 Console.WriteLine(TestConditions.One); //Output = One
 Console.WriteLine((TestConditions)12234); // Output = One


也许你可以使用这样的静态类

 public static class TestCondition
 {

      public static string One = "12234";
      public static string Two = "12345";
      public static int Three = 54321;

 }

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多