把Enum与Int32、String的相互转换的代码

简介:

平时我们须要把Enum类型与int(或者string)类型进行相互转换,利用下面的泛型编程,可以处理所有情况了。

 
 
  1. public static class EnumHelper2<T> 
  2.     public static String Enum2String(T value) 
  3.     { 
  4.         return value.ToString(); 
  5.     } 
  6.  
  7.     public static T String2Enum(string value, bool ignoreCase) 
  8.     { 
  9.         return (T)Enum.Parse(typeof(T), value, ignoreCase); 
  10.     } 
  11.  
  12.     public static int Enum2Int(T value) 
  13.     { 
  14.         return Convert.ToInt32(value); 
  15.     } 
  16.  
  17.     public static T Int2Enum(int value) 
  18.     { 
  19.         if (Enum.IsDefined(typeof(T), value)) 
  20.             return (T)Enum.ToObject(typeof(T), value); 
  21.         else 
  22.             throw new Exception(value + " is not defined"); 
  23.     } 
  24.  
  25. public static class EnumHelper 
  26.     public static int ToInt32<T>(T value) 
  27.     { 
  28.         return Convert.ToInt32(value); 
  29.     } 
  30.  
  31.     public static T FromInt32<T>(int value) 
  32.     { 
  33.         return (T)Enum.ToObject(typeof(T), value); 
  34.     } 
  35.  
  36.     public static T Parse<T>(string value, bool ignoreCase) 
  37.     { 
  38.         if (Enum.IsDefined(typeof(T), value)) 
  39.             return (T)Enum.Parse(typeof(T), value, ignoreCase); 
  40.         else 
  41.             throw new Exception(value + " is not defined"); 
  42.     } 
  43.  
  44.     public static T Parse<T>(int value) 
  45.     { 
  46.         if (Enum.IsDefined(typeof(T), value)) 
  47.             return (T)Enum.ToObject(typeof(T), value); 
  48.         else 
  49.             throw new Exception(value + " is not defined"); 
  50.     } 









本文转自 h2appy  51CTO博客,原文链接:http://blog.51cto.com/h2appy/412021,如需转载请自行联系原作者
目录
相关文章
|
1天前
|
存储 安全 C语言
C++ String揭秘:写高效代码的关键
在C++编程中,字符串操作是不可避免的一部分。从简单的字符串拼接到复杂的文本处理,C++的string类为开发者提供了一种更高效、灵活且安全的方式来管理和操作字符串。本文将从基础操作入手,逐步揭开C++ string类的奥秘,帮助你深入理解其内部机制,并学会如何在实际开发中充分发挥其性能和优势。
|
5月前
|
网络协议 C++
解决MASM32代码汇编出错: error A2181: initializer must be a string or single item
解决MASM32代码汇编出错: error A2181: initializer must be a string or single item
|
6月前
|
Kubernetes jenkins 持续交付
从代码到k8s部署应有尽有系列-java源码之String详解
本文详细介绍了一个基于 `gitlab + jenkins + harbor + k8s` 的自动化部署环境搭建流程。其中,`gitlab` 用于代码托管和 CI,`jenkins` 负责 CD 发布,`harbor` 作为镜像仓库,而 `k8s` 则用于运行服务。文章具体介绍了每项工具的部署步骤,并提供了详细的配置信息和示例代码。此外,还特别指出中间件(如 MySQL、Redis 等)应部署在 K8s 之外,以确保服务稳定性和独立性。通过本文,读者可以学习如何在本地环境中搭建一套完整的自动化部署系统。
84 0
|
6月前
|
Dart
Dart基础:进制转换、int与string互转
Dart基础:进制转换、int与string互转
172 3
|
7月前
|
存储
定义存储路径的写法 private static final String STORE_DIR = “E:\\B站视频创作\\前后端项目构建-小功能实现\\代码\\backend\\src\\main
定义存储路径的写法 private static final String STORE_DIR = “E:\\B站视频创作\\前后端项目构建-小功能实现\\代码\\backend\\src\\main
|
8月前
|
Java UED
Java中String强转int:一种常见的错误和解决方法
在Java中将非数字字符串转换为整数会导致`NumberFormatException`。要解决这个问题,可以使用`try-catch`捕获异常,正则表达式验证数字格式,或利用异常信息提供错误提示。例如,`Integer.parseInt()`会因遇到非数字字符如`&quot;123abc&quot;`而抛出异常,但通过异常处理或正则`\\d+`可确保安全转换。记得在编程时避免直接强转,以防止程序异常中断。
|
8月前
|
Java
String转化为Int
String转化为Int
|
8月前
|
Python
通过f-string编写简洁高效的Python格式化输出代码
Python 3.6中引入的f-string是Python中最常用的特征之一,它可以让我们编写更干净、更高效和更易于维护的代码,我们今天就由浅入深来详细介绍使用它的一些技巧。
509 4
|
9月前
int 和 String 互相转换的多种方法
int 和 String 互相转换的多种方法
82 1
|
9月前
|
Python
Python系列(15)—— int类型转string类型
Python系列(15)—— int类型转string类型

热门文章

最新文章