141 lines
3.6 KiB
C#
141 lines
3.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace HZQR.Common
|
|
{
|
|
public static class TypeParseExtenions
|
|
{
|
|
public static bool IsEmpty(this object[] me)
|
|
{
|
|
if (me == null) return true;
|
|
|
|
if (me.Length == 0) return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
public static bool IsNullOrDBNull(this object me)
|
|
{
|
|
return !(me != null && me != DBNull.Value);
|
|
}
|
|
|
|
public static T As<T>(this object me)
|
|
{
|
|
return As<T>(me,default(T));
|
|
}
|
|
|
|
public static T As<T>(this object me, T defaultValue)
|
|
{
|
|
T v;
|
|
try
|
|
{
|
|
v = (T)Convert.ChangeType(me, typeof(T));
|
|
}
|
|
catch
|
|
{
|
|
v = defaultValue;
|
|
}
|
|
return v;
|
|
}
|
|
|
|
public static DateTime? TryParseToDateTime(this object me)
|
|
{
|
|
if (me.IsNullOrDBNull())
|
|
return null;
|
|
else if (me is DateTime)
|
|
return (DateTime)me;
|
|
else
|
|
{
|
|
DateTime v;
|
|
if (DateTime.TryParse(me.ToString(), out v))
|
|
return v;
|
|
else
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static string TryParseToString(this object me)
|
|
{
|
|
return me == null ? string.Empty : Convert.ToString(me);
|
|
}
|
|
|
|
public static bool TryParseToBool(this object me, bool defaultValue = false)
|
|
{
|
|
if (me.IsNullOrDBNull())
|
|
return defaultValue;
|
|
if (me is int)
|
|
{
|
|
return (int)me > 0 ? true : false;
|
|
}
|
|
else
|
|
{
|
|
bool v;
|
|
bool.TryParse(me.ToString(), out v);
|
|
return v;
|
|
}
|
|
}
|
|
|
|
public static short TryParseToShort(this object me, short defaultValue = 0)
|
|
{
|
|
short v = 0;
|
|
decimal dv = 0;
|
|
if (!(me.IsNullOrDBNull()))
|
|
{
|
|
decimal.TryParse(me.ToString(), out dv);
|
|
short.TryParse(dv.ToString("0"), out v);
|
|
}
|
|
|
|
return (v == 0) ? defaultValue : v;
|
|
}
|
|
|
|
public static int TryParseToInt(this object me, int defaultValue = 0)
|
|
{
|
|
int v = 0;
|
|
decimal dv = 0;
|
|
if (!(me.IsNullOrDBNull()))
|
|
{
|
|
decimal.TryParse(me.ToString(), out dv);
|
|
int.TryParse(dv.ToString("0"), out v);
|
|
}
|
|
|
|
return (v == 0) ? defaultValue : v;
|
|
}
|
|
|
|
public static long TryParseToLong(this object me, long defaultValue = 0)
|
|
{
|
|
long v = 0;
|
|
decimal dv = 0;
|
|
if (!me.IsNullOrDBNull())
|
|
{
|
|
decimal.TryParse(me.ToString(), out dv);
|
|
long.TryParse(dv.ToString("0"), out v);
|
|
}
|
|
return (v == 0) ? defaultValue : v;
|
|
}
|
|
|
|
public static decimal TryParseToDecimal(this object me, decimal defaultValue = 0)
|
|
{
|
|
decimal v = 0;
|
|
if (!me.IsNullOrDBNull())
|
|
{
|
|
decimal.TryParse(me.ToString(), out v);
|
|
}
|
|
if (v == 0) v = defaultValue;
|
|
return v;
|
|
}
|
|
|
|
public static double TryParseToDouble(this object me, double defaultValue = 0)
|
|
{
|
|
double v = 0;
|
|
if (!me.IsNullOrDBNull())
|
|
{
|
|
double.TryParse(me.ToString(), out v);
|
|
}
|
|
if (v == 0) v = defaultValue;
|
|
return v;
|
|
}
|
|
}
|
|
}
|