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转换一个函数模板类型?

用私有构造器或者枚举类型强化Singleton属性

第3项:用私有构造器或者枚举类型强化Singleton属性

Java:Effective java学习笔记之 用私有构造器或者枚举类型强化SIngleton属性

C# Dynamics:Convert.ChangeType 与 Cast

用私有化构造器或者枚举类型强化Singleton属性