首页 / C# / c#简单类型转换As<T>
c#简单类型转换As<T>
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#简单类型转换As<T>,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2555字,纯文字阅读大概需要4分钟。
内容图文
![c#简单类型转换As<T>](/upload/InfoBanner/zyjiaocheng/1146/1ad33ce5156547edb06e7dcb2734dba0.jpg)
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
namespace Uilt
{
//返回类
public static class ObjectHelper
{
//简单类型转换
public static T As<T>(this object value, T defaultValue = default(T))
{
T res = defaultValue;
if (value == null)//为null返回默认值
{
return res;
}
object resValue = null;
Type fromType = value.GetType();
Type toType = typeof(T);
TypeCode fromTypeCode = Type.GetTypeCode(fromType);//来源类型
TypeCode toTypeCode = Type.GetTypeCode(toType);//结果类型
try
{
switch (toTypeCode)
{
case TypeCode.Boolean:
#region bool 转换
switch (fromTypeCode)
{
case TypeCode.SByte:
resValue = (sbyte)value > 0;
break;
case TypeCode.Byte:
resValue = (byte)value > 0;
break;
case TypeCode.Int16:
resValue = (short)value > 0;
break;
case TypeCode.UInt16:
resValue = (ushort)value > 0;
break;
case TypeCode.Int32:
resValue = (int)value > 0;
break;
case TypeCode.UInt32:
resValue = (uint)value != 0;
break;
case TypeCode.Int64:
resValue = (long)value > 0L;
break;
case TypeCode.UInt64:
resValue = (ulong)value > 0L;
break;
case TypeCode.String:
try
{
resValue = int.Parse((string)value) > 0;
}
catch
{
}
break;
}
resValue = ((IConvertible)value).ToBoolean(null);
#endregion
break;
case TypeCode.Char:
resValue = ((IConvertible)value).ToChar(null);
break;
case TypeCode.SByte:
resValue = ((IConvertible)value).ToSByte(null);
break;
case TypeCode.Byte:
resValue = ((IConvertible)value).ToByte(null);
break;
case TypeCode.Int16:
resValue = ((IConvertible)value).ToInt16(null);
break;
case TypeCode.UInt16:
resValue = ((IConvertible)value).ToUInt16(null);
break;
case TypeCode.Int32:
resValue = ((IConvertible)value).ToInt32(null);
break;
case TypeCode.UInt32:
resValue = ((IConvertible)value).ToUInt32(null);
break;
case TypeCode.Int64:
resValue = ((IConvertible)value).ToInt64(null);
break;
case TypeCode.UInt64:
resValue = ((IConvertible)value).ToUInt64(null);
break;
case TypeCode.Single:
resValue = ((IConvertible)value).ToSingle(null);
break;
case TypeCode.Double:
resValue = ((IConvertible)value).ToDouble(null);
break;
case TypeCode.Decimal:
resValue = ((IConvertible)value).ToDecimal(null);
break;
case TypeCode.DateTime:
resValue = ((IConvertible)value).ToDateTime(null);
break;
case TypeCode.String:
resValue = (value == null ? string.Empty : ((IConvertible)value).ToString(null));
break;
default:
resValue = value;
break;
}
if (resValue != null)
{
res = (T)resValue;
}
}
catch (Exception)
{
}
return res;
}
}
}
原文:https://www.cnblogs.com/Wilson6/p/12147292.html
内容总结
以上是互联网集市为您收集整理的c#简单类型转换As<T>全部内容,希望文章能够帮你解决c#简单类型转换As<T>所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。