using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace Common
{public static class ExtensionFuncation{#region 判断是否为空/// <summary>/// 判断对象是否为null或者为空/// </summary>/// <param name="o"></param>/// <returns></returns>public static bool IfIsNullOrEmpty(this object o){if (null == o || o.Equals(""))return true;elsereturn false;}/// <summary>/// 判断对象是否为null或者为空/// </summary>/// <param name="o"></param>/// <returns></returns>public static bool IfIsNullOrEmpty(this string o){if (string.IsNullOrWhiteSpace(o)) return true;elsereturn false;}/// <summary>/// 判断对象是否为null或者为空/// </summary>/// <param name="o"></param>/// <returns></returns>public static bool IfIsNullOrEmpty<T>(this List<T> o){ if(null == o || o.Count == 0)return true;elsereturn false;}/// <summary>/// 判断对象是否为null或者为空/// </summary>/// <param name="o"></param>/// <returns></returns>public static bool IfIsNullOrEmpty<T>(this IList<T> o){ if(null == o || o.Count == 0)return true;elsereturn false;}/// <summary>/// 判断对象是否为null或者为空/// </summary>/// <param name="o"></param>/// <returns></returns>public static bool IfIsNullOrEmpty<K, V>(this Dictionary<K, V> o){if (null == o || o.Count == 0)return true;elsereturn false;}#endregion#region 带默认值的类型转换/// <summary>/// 类型转换带默认值/// </summary>/// <typeparam name="T"></typeparam>/// <param name="o"></param>/// <param name="defaultValue">如果转换失败返回的默认值</param>/// <returns></returns>public static T ConvertToType<T>(this object o, T defaultValue){try{return (T)System.Convert.ChangeType(o, typeof(T), null);}catch{return defaultValue;}}/// <summary>/// 类型转换带默认值/// </summary>/// <typeparam name="T"></typeparam>/// <param name="o"></param>/// <param name="defaultValue">如果转换失败返回的默认值</param>/// <returns></returns>public static T ConvertToType<T>(this string o, T defaultValue){try{return (T)System.Convert.ChangeType(o, typeof(T), null);}catch{return defaultValue;}}#endregion#region 提取中文首字母/// <summary>/// 返回中文首字母小写格式的/// </summary>/// <param name="paramChinese"></param>/// <param name="ifToUpper">是否转成大写字母返回</param>/// <returns></returns>public static string GetFirstLetter(this string paramChinese, bool ifToUpper){string strTemp = "";int iLen = paramChinese.Length;int i = 0;for (i = 0; i <= iLen - 1; i++){strTemp += GetCharSpellCode(paramChinese.Substring(i, 1));}return ifToUpper ? strTemp.ToUpper() : strTemp.ToLower();}/// <summary>  /// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母  /// </summary>  /// <param name="CnChar">单个汉字</param>  /// <returns>单个大写字母</returns>  private static string GetCharSpellCode(string paramChar){long iCnChar;byte[] ZW = System.Text.Encoding.Default.GetBytes(paramChar);//如果是字母,则直接返回  if (ZW.Length == 1){return paramChar.ToUpper();}else{// get the array of byte from the single char  int i1 = (short)(ZW[0]);int i2 = (short)(ZW[1]);iCnChar = i1 * 256 + i2;}//expresstion  //table of the constant list  // 'A'; //45217..45252  // 'B'; //45253..45760  // 'C'; //45761..46317  // 'D'; //46318..46825  // 'E'; //46826..47009  // 'F'; //47010..47296  // 'G'; //47297..47613  // 'H'; //47614..48118  // 'J'; //48119..49061  // 'K'; //49062..49323  // 'L'; //49324..49895  // 'M'; //49896..50370  // 'N'; //50371..50613  // 'O'; //50614..50621  // 'P'; //50622..50905  // 'Q'; //50906..51386  // 'R'; //51387..51445  // 'S'; //51446..52217  // 'T'; //52218..52697  //没有U,V  // 'W'; //52698..52979  // 'X'; //52980..53640  // 'Y'; //53689..54480  // 'Z'; //54481..55289  // iCnChar match the constant  if ((iCnChar >= 45217) && (iCnChar <= 45252)){return "A";}else if ((iCnChar >= 45253) && (iCnChar <= 45760)){return "B";}else if ((iCnChar >= 45761) && (iCnChar <= 46317)){return "C";}else if ((iCnChar >= 46318) && (iCnChar <= 46825)){return "D";}else if ((iCnChar >= 46826) && (iCnChar <= 47009)){return "E";}else if ((iCnChar >= 47010) && (iCnChar <= 47296)){return "F";}else if ((iCnChar >= 47297) && (iCnChar <= 47613)){return "G";}else if ((iCnChar >= 47614) && (iCnChar <= 48118)){return "H";}else if ((iCnChar >= 48119) && (iCnChar <= 49061)){return "J";}else if ((iCnChar >= 49062) && (iCnChar <= 49323)){return "K";}else if ((iCnChar >= 49324) && (iCnChar <= 49895)){return "L";}else if ((iCnChar >= 49896) && (iCnChar <= 50370)){return "M";}else if ((iCnChar >= 50371) && (iCnChar <= 50613)){return "N";}else if ((iCnChar >= 50614) && (iCnChar <= 50621)){return "O";}else if ((iCnChar >= 50622) && (iCnChar <= 50905)){return "P";}else if ((iCnChar >= 50906) && (iCnChar <= 51386)){return "Q";}else if ((iCnChar >= 51387) && (iCnChar <= 51445)){return "R";}else if ((iCnChar >= 51446) && (iCnChar <= 52217)){return "S";}else if ((iCnChar >= 52218) && (iCnChar <= 52697)){return "T";}else if ((iCnChar >= 52698) && (iCnChar <= 52979)){return "W";}else if ((iCnChar >= 52980) && (iCnChar <= 53688)){return "X";}else if ((iCnChar >= 53689) && (iCnChar <= 54480)){return "Y";}else if ((iCnChar >= 54481) && (iCnChar <= 55289)){return "Z";}else return ("?");}#endregion}
}

转载于:https://www.cnblogs.com/lanymy/archive/2012/07/06/2579672.html

c# 通用类扩展方法 备注相关推荐

  1. java params 参数_将params作为参数传递给类扩展方法的函数

    我正在尝试将函数作为参数传递给类扩展方法 . 做的时候 fun Router.handleJsonGet(path: String, method: () -> Any) { this.get( ...

  2. 线性判别函数(Python实现批感知器算法、Ho Kashyap算法和MSE多类扩展方法)——模式识别编程作业

    文章目录 写在前面 批感知器算法 Ho Kashyap算法 MSE多类扩展方法 Ref. 写在前面 本博客为模式识别作业的记录,实现批感知器算法.Ho Kashyap算法和MSE多类扩展方法,可参考教 ...

  3. DbHelper数据库通用类使用方法

    代码 //执行SQL语句 public static void ExecSqlCommand() { DbHelper db = new DbHelper(); DbCommand command = ...

  4. 系统类扩展方法,实现对所有类或某种类扩展自定义方法

    扩展方法的格式: 1.必须把扩展方法写在静态类中 2.扩展方法的第一个参数必须加 "this" 修饰 例如,对所有object对象的扩展方法IsEmptyOrNull,判断对象是否 ...

  5. java dbhelper通用类,DbHelper数据库通用类使用方法

    代码 // 执行SQL语句 public static void ExecSqlCommand() { DbHelper db = new DbHelper(); DbCommand command ...

  6. C#扩展方法和静态类详解

    1.静态方法属于类,而普通方法则属于对象,因此静态方法可以用类名.静态方法 来调用,而普通方法则必须用new来实例化后调用 2.静态类中只能有 静态的方法,属性和变量 3.普通类中能有普通方法,也能有 ...

  7. 如何使用 C# 扩展方法

    译文链接:https://www.infoworld.com/article/3130492/how-to-work-with-extension-methods-in-c.html C# 在 3.0 ...

  8. 在C#中,当您在null对象上调用扩展方法时会发生什么?

    本文翻译自:In C#, what happens when you call an extension method on a null object? Does the method get ca ...

  9. iOS中分类(category)和类扩展(Extension)的区别

    iOS中分类(category)和类扩展(Extension)的区别 一.分类的定义: 分类是OC中的特有语法,它是表示一个指向分类结构体的指针,它是为了扩展系统类的方法而产生的一种方式. 二.分类的 ...

最新文章

  1. 顶刊发文奖励100万!不唯论文后,这所中科院研究院的激励机制引发争议
  2. 用SQL进行用户留存率计算
  3. 第二十五章补充内容 5 不能为0的变量
  4. BI中事实表,维度表和数据集市,数据仓库的理解
  5. Matlab导出高DPI图像——生成高分辨率.eps .tiff .jpg
  6. lwip 数据处理流程
  7. 程序人生:软件测试 非技术性面试题【建议每个测试人观看】
  8. 牛客练习赛29: F. 算式子
  9. mysql查询结果输出到文件
  10. 数据绑定以及Container.DataItem几种方式与使用方法分析
  11. 华为服务器SNMP协议怎么修改,华为迈普交换机、瑞斯康达SNMP协议配置方法
  12. qpython3l下载_QPython3下载
  13. 解决:“证书错误,导航已阻止”
  14. JavaC++题解与拓展——leetcode953.验证外星语【么的新知识】
  15. 更新品牌与Z世代交互方式|朋氪元宇宙即将内测
  16. 计算机网络共享硬件吗,计算机网络如何共享硬件资源
  17. 985中山大学珠海校区新成立人工智能学院和软件工程学院!
  18. “坠入情网”不叫爱,叫寂寞
  19. 以太坊区块链黑客松: 构造下一个数字世界
  20. eclipse中创建spring boot项目

热门文章

  1. proe输入数字时成双出现_职场数据控系列,超市基础篇,商品双ABC分析法及应用...
  2. ant如何形成时间轴和图库_如何让景观设计更具有逻辑性?
  3. Mac Big Sur如何关闭开机提示音效
  4. python当输入0时结束_python输入-1时结束-女性时尚流行美容健康娱乐mv-ida网
  5. 合成资产平台Public Mint与跨链资产协议Knit Finance达成合作
  6. DeFi稳定币协议Lien Protocol通过zkRollup测试网迁移至以太坊二层
  7. A股开盘:深证区块链50指数涨0.18%,概念股涨多跌少
  8. SAP License:系统退货处理流程
  9. 谈谈互金跟银行里数据逻辑的差异
  10. 2019 Power BI最Top50面试题,助你面试脱颖而出系列中