#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. 低功耗蓝牙BLE之连接事件、连接参数和更新方法

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 检验金额合法性, 只能是正数 或小数(常用js总结)

    //检验金额合法性 只能是正数 或小数 function checkMoney(fileds){ $(fileds).keyup(function () { ,}/); var txt = ''; i ...

  9. java读写Properties属性文件公用方法

    Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件. 它提供了几个主要的方法: 1. getProperty ( String ...

随机推荐

  1. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  2. PAT 1048. 数字加密(20)

    本题要求实现一种数字加密方法.首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余--这里用J代表10.Q代表11.K代 ...

  3. IOS第一天-新浪微博 - 框架的搭建

    *************HWAppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunchingWith ...

  4. 常用备份工具是mysql自带的mysqldump

    常用备份工具是mysql自带的mysqldump,mysqldump -u root -p密码 dbname >d:\test.sql ------------备份某个库mysqldump -u ...

  5. 《30天自制操作系统》笔记(02)——导入C语言

    <30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL ...

  6. 【Zeyphr】保存json到数据库

    方法一: public int SaveJob(JObject data) { var formWrapper = RequestWrapper.Instance().LoadSettingXmlSt ...

  7. ELK笔记

    ELK笔记 ELKStack高级实战培训http://files.cnblogs.com/files/MYSQLZOUQI/ELKStack%E9%AB%98%E7%BA%A7%E5%AE%9E%E6 ...

  8. SQL总结(七)查询实战

    SQL总结(七)查询实战 一.场景 给定一个场景,学生选课系统为例,大家很熟悉. 主要关系: 学生(学号.姓名.年龄.性别) 教师(教师ID,教师姓名) 课程(课程ID,课程名称,任教教师ID) 成绩 ...

  9. POJ C Looooops

    Description A Compiler Mystery: We are given a C-language style for loop of type for (variable = A; ...

  10. shell eval用法

    转自:http://blog.csdn.net/w_ww_w/article/details/7075867 eval可读取一连串的参数,然后再依参数本身的特性来执行.eval是shell内建命令,可 ...