#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

  

C#检验参数合法性公用方法的更多相关文章

  1. Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)

    Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性) 前言:由于前段时间忙于写接口,在接口中需要做很多的参数校验,本着简洁.高效的原则,便写了这个小工具供自己使用(内容 ...

  2. axios源码入口以及公用方法

    axios学习笔记(公用方法) 源码地址 找到入口文件 axios/lib/axios.js var utils = require('./utils'); var bind = require('. ...

  3. 低功耗蓝牙BLE之连接事件、连接参数和更新方法

    转自:http://blog.csdn.net/zzfenglin/article/details/51304084 连接事件 在一个连接当中,主设备会在每个连接事件里向从设备发送数据包.一个连接事件 ...

  4. Swift开发第十篇——可变参数函数&初始化方法顺序

    本篇分为两部分: 一.Swift中的可变参数函数 二.初始化方法的顺序 一.Swift中的可变参数函数 可变参数函数指的是可以接受任意多个参数的函数,在 OC 中,拼接字符串的函数就属于可变参数函数 ...

  5. Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载

    Shell脚本中判断输入参数个数的方法 投稿:junjie 字体:[增加 减小] 类型:转载   这篇文章主要介绍了Shell脚本中判断输入参数个数的方法,使用内置变量$#即可实现判断输入了多少个参数 ...

  6. DbHelperSQL 判断数据库表结构公用方法

    #region 公用方法        /// <summary>        /// 判断是否存在某表的某个字段        /// </summary>        ...

  7. asp.net获取当前页面文件名,参数,域名等方法。统一session验证和权限验证的方法

    转:http://blog.csdn.net/llll29550242/article/details/6054323 ASP.net后台获取当前页面的文件名 System.IO.Path.GetFi ...

  8. NHibernate各种数据库连接参数文件配置方法说明

    //NHibernate各种数据库连接参数文件配置方法说明 //配置文件Config/Hibernate.cfg.xml内容如下所示: <?xml version="1.0" ...

  9. util包就是用来放一些公用方法和数据结构的

    util包就是用来放一些公用方法和数据结构的

随机推荐

  1. CXF:根据werservice代码生成WSDL(转)

    原文:http://hongyegu.iteye.com/blog/619147,谢谢! import org.apache.cxf.tools.java2ws.JavaToWS; import ne ...

  2. spring源码:学习线索(li)

    一.spring xml配置(不包括AOP,主要了解在初始化及实例化过程中spring配置文件中每项内容的具体实现过程,从根本上掌握spring) <bean>的名字 &,alia ...

  3. js判断窗体或容器滚动条到底部

    NO1---jquery判断窗体滚动条到底部 $(window).scroll(function () {if ($(window).scrollTop() >= $(document).hei ...

  4. cmd命令汇总

    一  cmd 命令 cmd命令大全(第一部分) winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr------ ...

  5. Canvas——使用定时器模拟动态加载动画!

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. Android--Volley框架的使用

    一.Volley特点 通信更快,更简单(数据量不大,但网络通信频繁) Get.Post网络请求及网络图像的高效率异步处理 排序(可以通过网络请求的优先级进行处理) 网络请求的缓存 多级别取消请求 和A ...

  7. Oracle使用java source调用外部程序

    需求 Oracle调用第三方外部程序.Oracle使用sqluldr2快速导出大批量数据,然后用winrar压缩后发送邮件. 本文档主要实现前两步需求,发送邮件程序这里不再说明. 原码 授权 begi ...

  8. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  9. sys.dm_os_waiting_tasks 引发的疑问(上)

    很多人在查看SQL语句等待的时候都是通过sys.dm_exec_requests查看,等待类型也是通过wait_type得出,sys.dm_os_waiting_tasks也可以看到session的等 ...

  10. 【msql】关于redo 和 undo log

    InnoDB 有两块非常重要的日志,一个是undo log,另外一个是redo log,前者用来保证事务的原子性以及InnoDB的MVCC,后者用来保证事务的持久性.和大多数关系型数据库一样,Inno ...