Простой тип преобразования в C # Как <T>

с использованием системы;
используя System.Collections.Generic;
используя System.Data;
используя System.Linq;
используя System.Web;

Пространство имен Uilt
{

// Возвращает класс
общественных статического класса ObjectHelper
{
// простого преобразование типа
общественный статика As T <T> ( стандартный объект этого значения, T DefaultValue = по умолчанию (T))
{
T RES = DefaultValue;
IF (значение == NULL) // является по умолчанию или нулевое значение
{
возврата RES;
}
Объект resValue = NULL;
тип value.GetType fromType = ();
тип его toType = TypeOf (Т);
TypeCode fromTypeCode = Type.GetTypeCode (fromType); тип // Происхождение
TypeCode toTypeCode = тип. GetTypeCode (toType); // результат типа
попробовать
{
переключатель (toTypeCode)
{

: случай TypeCode.Boolean
#region BOOL转换
переключатель (fromTypeCode)
{
случай TypeCode.SByte:
значение resValue = (SByte)> 0;
перемена;
Случай TypeCode.Byte:
resValue = значение (байт)> 0;
перемена;
Случай TypeCode.Int16:
resValue = значение (короткое замыкание)> 0;
перемена;
Случай TypeCode.UInt16:
resValue = значение (USHORT)> 0;
перемена;
Случай TypeCode.Int32:
resValue = значение (целое)> 0;
перемена;
случай TypeCode.UInt32:
! resValue = значение (UINT) = 0;
перемена;
Случай TypeCode.Int64:
resValue = (длинное) значение> 0L;
перемена;
случай TypeCode.UInt64:
resValue = значение (ULONG)> 0L;
перемена;
Случай TypeCode.String:
попытка
{
resValue = int.Parse ((строка) значение)> 0;
}
Поймать
{
}
перерыв;
}
(Значение (IConvertible)) resValue = .ToBoolean (нуль);
#endregion
перерыв;
Случай TypeCode.Char:
(значение (IConvertible)) resValue = .ToChar (нуль);
перемена;
Случай TypeCode.SByte:
resValue = ((IConvertible) значение) .ToSByte (нуль);

перемена;
Случай TypeCode.Byte:
resValue = ((IConvertible) значение) .ToByte (нуль);

перемена;
Случай TypeCode.Int16:
(значение (IConvertible)) resValue = .ToInt16 (нуль);
перемена;
Случай TypeCode.UInt16:
(значение (IConvertible)) resValue = .ToUInt16 (нуль);
перемена;
Случай TypeCode.Int32:
(значение (IConvertible)) resValue = .ToInt32 (нуль);
перемена;
Случай TypeCode.UInt32:
(значение (IConvertible)) resValue = .ToUInt32 (нуль);

перемена;
Случай TypeCode.Int64:
(значение (IConvertible)) resValue = .ToInt64 (нуль);

перемена;
Случай TypeCode.UInt64:
(значение (IConvertible)) resValue = .ToUInt64 (нуль);

перемена;
Случай TypeCode.Single:
(значение (IConvertible)) resValue = .ToSingle (нуль);

перемена;
Случай TypeCode.Double:
(значение (IConvertible)) resValue = .ToDouble (нуль);
перемена;
Случай TypeCode.Decimal:
(значение (IConvertible)) resValue = .ToDecimal (нуль);
перемена;
Случай TypeCode.DateTime:
(значение (IConvertible)) resValue = .ToDateTime (нуль);
перемена;
Случай TypeCode.String:
resValue = (значение == NULL string.Empty: ((значение IConvertible)) .ToString (нуль));
перемена;
по умолчанию:
resValue = значение;
перемена;
}


если (! resValue = NULL)
{
Рез = (T) resValue;
}
}
Задвижка (исключение)
{

}
Вернуть Рез;
}
}
}

рекомендация

отwww.cnblogs.com/Wilson6/p/12147292.html
рекомендация