zoukankan      html  css  js  c++  java
  • 扩展函数之 IsWhat 简单好用

    代码实现:

    /***扩展函数名细***/
     
    //【IsInRange】 
    int num = 100;
    //以前写法
    if (num > 100 & num < 1000) { }
    //现在写法
    if (num.IsInRange(100, 1000)) { } //datetime类型也支持
     
     
     
    //【IsNullOrEmpty】
    object s = "";
    //以前写法
    if (s == null || string.IsNullOrEmpty(s.ToString())) { }
    //现在写法
    if (s.IsNullOrEmpty()) { }
    //更顺手了没有 }
     
     
    //【IsIn】
    string value = "a";
    //以前写法我在很多项目中看到
    if (value == "a" || value == "b" || value == "c") {
    }
    //现在写法
    if (value.IsIn("a", "b", "c")) {
     
    }
     
    //【IsValuable与IsNullOrEmpty相反】
    string ss = "";
    //以前写法
    if (!string.IsNullOrEmpty(ss)) { }
    //现在写法
    if (s.IsValuable()) { }
     
     
    List<string> list = null;
    //以前写法
    if (list != null && list.Count > 0) { }
    //现在写法
    if (list.IsValuable()) { }
     
     
     
     
    //IsIDcard
    if ("32061119810104311x".IsIDcard())
    {
     
    }
     
    //IsTelephone
    if ("0513-85669884".IsTelephone())
    {
     
    }
     
    //IsMatch 节约你引用Regex的命名空间了
    if ("我中国人12".IsMatch(@"人d{2}")) { }
     
     
    //下面还有很多太简单了的就不介绍了
    //IsZero
    //IsInt
    //IsNoInt
    //IsMoney
    //IsEamil
    //IsMobile

    封装类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
     
    namespace SyntacticSugar
    {
        /// <summary>
        /// ** 描述:逻辑判段是什么?
        /// ** 创始时间:2015-5-29
        /// ** 修改时间:-
        /// ** 作者:sunkaixuan
        /// ** 使用说明:http://www.cnblogs.com/sunkaixuan/p/4539654.html
        /// </summary>
        public static class IsWhat
        {
            /// <summary>
            /// 值在的范围?
            /// </summary>
            /// <param name="o"></param>
            /// <param name="begin">大于等于begin</param>
            /// <param name="end">小于等于end</param>
            /// <returns></returns>
            public static bool IsInRange(this int o, int begin, int end)
            {
                return o >= begin && o <= end;
            }
            /// <summary>
            /// 值在的范围?
            /// </summary>
            /// <param name="o"></param>
            /// <param name="begin">大于等于begin</param>
            /// <param name="end">小于等于end</param>
            /// <returns></returns>
            public static bool IsInRange(this DateTime o, DateTime begin, DateTime end)
            {
                return o >= begin && o <= end;
            }
     
            /// <summary>
            /// 在里面吗?
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="o"></param>
            /// <param name="values"></param>
            /// <returns></returns>
            public static bool IsIn<T>(this T o, params T[] values)
            {
                return values.Contains(o);
            }
     
            /// <summary>
            /// 是null或""?
            /// </summary>
            /// <returns></returns>
            public static bool IsNullOrEmpty(this object o)
            {
                if (o == null || o == DBNull.Value) return true;
                return o.ToString() == "";
            }
            /// <summary>
            /// 是null或""?
            /// </summary>
            /// <returns></returns>
            public static bool IsNullOrEmpty(this Guid? o)
            {
                if (o == null) return true;
                return o == Guid.Empty;
            }
            /// <summary>
            /// 是null或""?
            /// </summary>
            /// <returns></returns>
            public static bool IsNullOrEmpty(this Guid o)
            {
                if (o == null) return true;
                return o == Guid.Empty;
            }
     
            /// <summary>
            /// 有值?(与IsNullOrEmpty相反)
            /// </summary>
            /// <returns></returns>
            public static bool IsValuable(this object o)
            {
                if (o == null) return false;
                return o.ToString() != "";
            }
            /// <summary>
            /// 有值?(与IsNullOrEmpty相反)
            /// </summary>
            /// <returns></returns>
            public static bool IsValuable(this IEnumerable<object> o)
            {
                if (o == null || o.Count() == 0) return false;
                return true;
            }
     
            /// <summary>
            /// 是零?
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static bool IsZero(this object o)
            {
                return (o == null || o.ToString() == "0");
            }
     
            /// <summary>
            /// 是INT?
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static bool IsInt(this object o)
            {
                if (o == null) return false;
                return Regex.IsMatch(o.ToString(), @"^d+$");
            }
            /// <summary>
            /// 不是INT?
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static bool IsNoInt(this object o)
            {
                if (o == null) return true;
                return !Regex.IsMatch(o.ToString(), @"^d+$");
            }
     
            /// <summary>
            /// 是金钱?
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static bool IsMoney(this object o)
            {
                if (o == null) return false;
                double outValue = 0;
                return double.TryParse(o.ToString(), out outValue);
            }
     
            /// <summary>
            /// 是邮箱?
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static bool IsEamil(this object o)
            {
                if (o == null) return false;
                return Regex.IsMatch(o.ToString(), @"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$");
            }
     
            /// <summary>
            /// 是手机?
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static bool IsMobile(this object o)
            {
                if (o == null) return false;
                return Regex.IsMatch(o.ToString(), @"^d{11}$");
            }
     
            /// <summary>
            /// 是座机?
            /// </summary>
            public static bool IsTelephone(this object o)
            {
                if (o == null) return false;
                return System.Text.RegularExpressions.Regex.IsMatch(o.ToString(), @"^((d{3,4})|d{3,4}-|s)?d{8}$");
     
            }
     
            /// <summary>
            /// 是身份证?
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static bool IsIDcard(this object o)
            {
                if (o == null) return false;
                return System.Text.RegularExpressions.Regex.IsMatch(o.ToString(), @"^(d{15}$|^d{18}$|^d{17}(d|X|x))$");
            }
     
            /// <summary>
            ///是适合正则匹配?
            /// </summary>
            /// <param name="o"></param>
            /// <param name="begin">大于等于begin</param>
            /// <param name="end">小于等于end</param>
            /// <returns></returns>
            public static bool IsMatch(this object o, string pattern)
            {
                if (o == null) return false;
                Regex reg = new Regex(pattern);
                return reg.IsMatch(o.ToString());
            }
        }
    }
  • 相关阅读:
    单例模式
    工厂方法模式
    简单工厂模式
    LoadRunner11.0下载及安装链接~(By网络)
    lombok 介绍及基本使用方法
    360浏览器拦截弹窗,window.open方式打不开新页面
    js生成二维码
    Filter过滤器的写法
    JavaScript获取浏览器类型与版本
    如何截取date类型的年月日部分?
  • 原文地址:https://www.cnblogs.com/jameslif/p/6831455.html
Copyright © 2011-2022 走看看