C#中强化ChangeType方法使其支持枚举类型转换
Posted Hello Bug.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中强化ChangeType方法使其支持枚举类型转换相关的知识,希望对你有一定的参考价值。
一:前言
反射操作时经常需要将未知的类型转换为指定类型,使用Convert.ChangeType可以将一个实现了IConvertible接口的对象转换为指定类型,但System.Convert.ChangeType不支持枚举类型的转换
二:代码实现
using System;
/// <summary>
/// 转换工具
/// </summary>
public static class ConvertUtils
{
/// <summary>
/// 转换类型(支持枚举类型)
/// </summary>
public static object ChangeType(object value, Type type)
{
if (type.IsEnum)
{
return Enum.Parse(type, value.ToString());
}
else
{
return Convert.ChangeType(value, type);
}
}
}
以上是关于C#中强化ChangeType方法使其支持枚举类型转换的主要内容,如果未能解决你的问题,请参考以下文章
C#怎么用Convert.ChangeType转换一个函数模板类型?
Java:Effective java学习笔记之 用私有构造器或者枚举类型强化SIngleton属性