zoukankan      html  css  js  c++  java
  • C#中枚举类型和int类型的转化

    先定义一个枚举类型

    public enum PropertyType { 小学 = 0, 初中, 高中,大学 };

    int ->enum 

           int d=2;     

           PropertyType  a=(PropertyType)d;

    int <- enum        

           PropertyType  d = PropertyType.小学;       

           int a = Convert.ToInt32(d);

    Enum类有关的方法

    Enum.Parse 方法 (Type, String)

    将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。

    
    
    public static Object Parse(
        Type enumType,
        string value
    )
    
    参数
    enumType类型:System.Type
    枚举类型。
    
    value类型:System.String 包含要转换的值或名称的字符串。 返回值 类型:System.Object enumType 类型的对象,其值由 value 表示。
     

    如果我们有两个enum,

    1 public enum Colors {Red, Green, Blue}
    2  
    3 public enum BgColors {Red, Black, Green, Blue }

     

    看起來差不多。

    有一天有需要把一个变成另一个來用。可能会写成这样:

    1 Colors font_color = Colors.Blue;
    2 BgColor bg = (BgColor)font_color;

    看起來可以,编译也对。但实际上是不對的,因为实际上是转成enum所代表的int,对应的結果往往不是我们想要的。

    正确的作法是 

    1 Colors font_color = Colors.Blue;
    2 (BgColor)Enum.Parse(typeof(BgColor), font_color.ToString());

     这是一种很简单的理念,但常常写成上面的写法。但日后如果其中之一有变,造成顺序有更改的話,就会出现错误。

     

    Enum.GetName 方法

    指定枚举中检索具有指定值的常数的名称。

    public static string GetName(
        Type enumType,
        Object value
    )
    
    enumType
    类型:System.Type
    枚举类型。
    
    value
    类型:System.Object
    特定枚举常数的值(根据其基础类型)。
    
    返回值
    类型:System.String
    一个字符串,其中包含 enumType 中值为 value 的枚举常数的名称;如果没有找到这样的常数,则为 null

    Enum.GetNames 方法

    检索指定枚举中常数名称的数组。

    public static string[] GetNames(
        Type enumType
    )
    
    参数
    enumType
    类型:System.Type
    枚举类型。
    
    
    返回值
    类型:System.String[]
    enumType 的常数名称的字符串数组。
    View Code
  • 相关阅读:
    Mysql基础3-数据操作语言DML-数据查询语言DQL
    Mysql基础2-数据定义语言DDL
    Mysql基础1-基础语法-字段类型
    php源码建博客5--建库建表-配置文件-错误日志
    PHP基础4--函数-数组
    php源码建博客4--实现MVC结构微型框架
    PHP基础3--文件加载-错误处理
    php源码建博客3--区分平台的MVC结构
    php源码建博客2--实现单入口MVC结构
    php源码建博客1--搭建站点-实现登录页面
  • 原文地址:https://www.cnblogs.com/tech-bird/p/3515199.html
Copyright © 2011-2022 走看看