#region 檢驗參數合法性,數值類型不小於0,引用類型不能為null,否則拋出異常
/// <summary>
/// 檢驗參數合法性,數值類型不小於0,引用類型不能為null,否則拋出異常
/// </summary>
/// <param name="arg">待檢參數</param>
/// <param name="argName">待檢參數名稱</param>
/// <param name="canZero">數值類型是否可以為0</param>
public static bool CheckArgument(object arg, string argName, bool canZero = false)
{
ILog log = LogManager.GetLogger(String.Format("CheckArgument_{0}", argName));
try
{
if (arg == null)
{
ArgumentNullException argumentNullException = new ArgumentNullException(argName);
throw new Exception(String.Format("參數{0}為空,引發異常", argName), argumentNullException);
}
Type t = arg.GetType();
if (t.IsValueType && t.IsNumeric())
{
bool flag = !canZero ? arg.CastTo(0.0) <= 0.0 : arg.CastTo(0.0) < 0.0;
if (flag)
{
ArgumentOutOfRangeException argumentOutOfRangeException = new ArgumentOutOfRangeException(argName);
throw new Exception(String.Format("參數{0}不在有效范圍內,引發異常", argName), argumentOutOfRangeException);
}
}
if (t == typeof(Guid) && (Guid)arg == Guid.Empty)
{
ArgumentNullException argumentNullException1 = new ArgumentNullException(argName);
throw new Exception(String.Format("參數{0}為空引發GUID異常", argName), argumentNullException1);
}
return true;
}
catch (Exception exception)
{
log.Error("檢驗參數合法性", exception);
}
return false;
}
#endregion