C#枚举

 

using System;

class Program
{
   public enum Color
   {
      Red = 0xff0000,
      Orange = 0xFFA500,
      Yellow = 0xFFFF00,
      Lime = 0x00FF00,
      Cyan = 0x00FFFF,
      Blue = 0x0000FF,
      Purple = 0x800080
   }

   static void Main(string[] args)
   {
      Color color = Color.Blue;
      string colorString = "Blue";
      int colorValue = 0x0000FF;

      //枚举转字符串
      string enumStringOne = color.ToString();
      string enumStringTwo = Enum.GetName(typeof(Color), color);

      //枚举转值
      int enumValueOne = color.GetHashCode();
      int enumValueTwo = (int)color;
      int enumValueThree = Convert.ToInt32(color);

      //字符串转枚举
      Color enumOne = (Color)Enum.Parse(typeof(Color), colorString);

      //字符串转值
      int enumValueFour = (int)Enum.Parse(typeof(Color), colorString);

      //值转枚举
      Color enumTwo = (Color)colorValue;
      Color enumThree = (Color)Enum.ToObject(typeof(Color), colorValue);

      //值转字符串
      string enumStringThree = Enum.GetName(typeof(Color), colorValue);
   }
}


 

//假设有枚举值如下:

public enum DbProviderType

  {

      SqlServer,

      Oracle

  }
//1、将枚举转换为字符串:

string strDbType = DbProviderType.SqlServer.ToString();
//2、将字符串转换为枚举:

DbProviderType dbType = (DbProviderType)Enum.Parse(typeof(DbProviderType), strDbType, true);


 

 

### C# 枚举的使用方法及示例 #### 1. 基本定义 在 C# 中,枚举通过 `enum` 关键字声明。它是一种值类型,默认情况下继承自 `System.Enum`[^3]。以下是基本语法: ```csharp public enum Colors { Red, Green, Blue } ``` 上述代码中,`Colors` 是一个简单的枚举类型,其成员分别为 `Red`, `Green`, 和 `Blue`。 #### 2. 显式赋值 如果未显式指定值,则编译器会自动分配整数给每个枚举项,起始值为 0 并依次递增。也可以手动设置值: ```csharp public enum Numbers : byte { // 指定底层数据类型为byte One = 1, Two, Three } ``` 在此例子中,`Numbers.Two` 的值将是 2,而 `Numbers.Three` 将是 3。 #### 3. 获取枚举的所有值或名称 可以通过 `Enum.GetValues()` 或 `Enum.GetNames()` 来获取枚举的所有值或名称列表[^1]。例如: ```csharp foreach (var color in Enum.GetValues(typeof(Colors))) { Console.WriteLine(color); } // 输出结果: // Red // Green // Blue ``` 或者获取名称列表: ```csharp string[] names = Enum.GetNames(typeof(Numbers)); Console.WriteLine(string.Join(", ", names)); // 输出结果: // One, Two, Three ``` #### 4. 转换字符串到枚举 可以利用 `Enum.Parse` 方法将字符串转换成对应的枚举值[^2]: ```csharp string input = "Two"; Numbers number = (Numbers)Enum.Parse(typeof(Numbers), input); if (number == Numbers.Two) { Console.WriteLine("Matched!"); } else { Console.WriteLine("Not matched."); } ``` 注意:当输入不匹配任何枚举值时,可能会抛出异常,因此建议结合 `TryParse` 进行安全处理。 #### 5. 绑定 ComboBox 控件 对于 UI 开发场景,比如绑定 `ComboBox` 到枚举值,可按如下方式实现[^4]: ```csharp public enum OperEnum { None = 1, User = 2, Admin = 3 } comboBox.DataSource = Enum.GetValues(typeof(OperEnum)); ``` 这样即可将所有枚举值加载至下拉框供用户选择。 --- ### 总结 C# 枚举提供了简洁的方式来表示一组固定的常量集合,并支持丰富的操作功能如遍历、解析以及与其他组件集成等功能[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值