C# 根据指定的类型,动态转换object数据到指定类型

  1. 封装类
namespace EFCoreDynamicCondition.Helptool
{
    public class Helptool
    {
        public static T ConvertToType<T>(object value)
        {
            try
            {
                return (T)Convert.ChangeType(value, typeof(T));
            }
            catch (InvalidCastException)
            {
                // 转换失败的处理
                Console.WriteLine($"Conversion to {typeof(T).Name} failed.");
                return default(T); // 或者抛出异常,具体情况可以根据需求来处理
            }
        }


        public static object ConvertToType(object value, Type targetType)
        {
            try
            {
                return Convert.ChangeType(value, targetType);
            }
            catch (InvalidCastException)
            {
                // 转换失败的处理
                Console.WriteLine($"Conversion to {targetType.Name} failed.");
                return targetType.IsValueType ? Activator.CreateInstance(targetType) : null;
                // 或者抛出异常,具体情况可以根据需求来处理
            }
        }
    }
}

  1. 使用demo
Console.WriteLine(Helptool.ConvertToType<int>("32"));

Console.WriteLine(Helptool.ConvertToType("32", typeof(int)));


Console.WriteLine("Hello, World!");

你可能感兴趣的:(.netCore,C#,c#)