数据类型转换
/// <summary>
/// 数据类型转换
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="value">源数据</param>
/// <param name="defaultValue">默认值</param>
/// <returns>结果</returns>
public static T To<T>(object value, T defaultValue)
{
/* T obj;
try {
if (value == null) {
return defaultValue;
}
obj = (T)Convert.ChangeType(value, typeof(T));
if (obj == null) {
obj = defaultValue;
}
} catch {
obj = defaultValue;
}
return obj;*/
T obj = default(T);
try
{
if (value == null)
{
return defaultValue;
}
var valueType = value.GetType();
var targetType = typeof(T);
tag1:
if (valueType == targetType)
{
return (T)value;
}
if (targetType.IsEnum)
{
if (value is string)
{
return (T)System.Enum.Parse(targetType, value as string);
}
else
{
return (T)System.Enum.ToObject(targetType, value);
}
}
if (targetType == typeof(Guid) && value is string)
{
object obj1 = new Guid(value as string);
return (T)obj1;
}
if (targetType == typeof(DateTime) && value is string)
{
DateTime d1;
if (DateTime.TryParse(value as string, out d1))
{
object obj1 = d1;
return (T)obj1;
}
}
if (targetType.IsGenericType)
{
if (targetType.GetGenericTypeDefinition() == typeof(Nullable<>))
{
targetType = Nullable.GetUnderlyingType(targetType);
goto tag1;
}
}
if (value is IConvertible)
{
obj = (T)Convert.ChangeType(value, typeof(T));
}
if (obj == null)
{
obj = defaultValue;
}
}
catch
{
obj = defaultValue;
}
return obj;
}
推荐阅读
-
Word与PPT进行快速转换的方法及可能遇到的问题
-
对有日期的数据实现月份的筛选无需将日期转换成月
-
Word中的姓名转换到Excel中并且每个分别在独立单元格中
-
Word中如何将文本转换为表格以表格的形式显示出来
-
CAD迷你看图如何转换成PDF DWG图纸转换PDF的教程图解
-
狸窝全能视频转换器高级设置功能在哪里?狸窝转换器高级参数设置教程介绍
-
语音如何转换成文字?闪电文字语音转换软件将语音转换成文字的方法介绍
-
Aiseesoft Total Video Converter怎么激活 Aiseesoft视频转换器激活教程
-
闪电文字语音转换软件如何安装使用?文字转语音方法介绍
-
金舟视频格式转换器如何使用?视频格式转换器安装使用教程