C#类扩展方法,字符串对象转换,常用扩展方法StringExtensions


C#类扩展方法,字符串对象转换,常用扩展方法StringExtensions
 
C#类扩展方法
 
 
MSDN中的定义是:扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this修饰符为前缀。
 
 
“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”
 
 
可以对String,Int,DataRow,DataTable等这些类型的基础上增加一个或多个方法,使用时不需要去修改或编译类型本身的代码。

 

C# Code:

C# 全选
/// <summary>
/// 字符串对象转换,常用扩展方法
/// </summary>
public static class StringExtensions
{
  /// <summary>
  /// 转换为字符串
  /// </summary>
  /// <param name="o"></param>
  /// <returns></returns>
   public static string ToStringEx(this object o)
  {
    if (o == null) return "";
    return o.ToString().Trim();
  }
  
  /// <summary>
  /// 判断字符串是否为空
  /// </summary>
  /// <param name="o"></param>
  /// <returns></returns>
   public static bool IsNullOrEmpty(this object o)
  {
    return string.IsNullOrEmpty(o.ToStringEx());
  }
  
  /// <summary>
  /// 转换为SQL支持的日期类型
  /// </summary>
  /// <param name="o"></param>
  /// <returns></returns>
   public static DateTime ToSqlDateTime(this string o)
  {
    DateTime defMinValue = DateTime.Parse("1753-01-01 00:00:00");
    DateTime defMaxValue = DateTime.Parse("9999-12-31 23:59:59");
    if (null == o) return defMinValue;//传入空值,返回预设值
    
    DateTime dt;
    if (DateTime.TryParse(o.ToString(), out dt))
    {
      if (dt < defMinValue || dt > defMaxValue)
      return defMinValue;//无效日期,预设返回SQL支持的最小日期
       else
      return dt;
    }
    return defMinValue;
  }
  
  /// <summary>
  /// 转换为浮点类型
  /// </summary>
  /// <param name="o"></param>
  /// <returns></returns>
   public static float ToFloatEx(this string o)
  {
    if (null == o) return 0;
    try
    {
      return (float)Convert.ToDouble(o.ToString());
    }
    catch { return 0; }
  }
  
  /// <summary>
  /// 转换为数字类型
  /// </summary>
  /// <param name="o"></param>
  /// <returns></returns>
   public static int ToIntEx(this string o)
  {
    if (null == o) return 0;
    try
    {
      return Convert.ToInt32(o.ToString());
    }
    catch { return 0; }
  }
  
  /// <summary>
  /// 转换为Decimal类型
  /// </summary>
  /// <param name="o"></param>
  /// <param name="i"></param>
  /// <returns></returns>
   public static decimal ToDecimalEx(this string o, int i = 2)
  {
    if (null == o) return 0;
    try
    {
      //Math.Round之后不自动补零
      //return decimal.Parse(Math.Round(Convert.ToDouble(s.ToString()), i).ToString());
       return decimal.Parse(Convert.ToDecimal(o.ToString()).ToString("F" + i));
    }
    catch { return 0; }
  }
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:在Resources.resourceMan和Resources.resourceMan之间具有二义性
下一篇:C/S架构快速开发框架SQL并发测试压力测试 | www.csframework.com
评论列表

发表评论

评论内容
昵称:
关联文章

C#扩展方法,字符串对象转换,扩展方法StringExtensions
C#.NET 对象(字符串)转换扩展方法
C#关键字名词解释
C#.NET 定义动态对象dynamic以及转换JSON字符串
C#数据转换ConvertEx,封装.Net的Convert对象
TypeConverter.ConvertFromString 通用方法字符串转换为具体的类型
对象
C# 几个获取当前文件名的方法
C# 泛型日期(DateTime?)扩展方法 DateTimeExtension
C#.NET扩展的动态对象支持动态属性和方法以及Json格式与对象互转
V4:设置,取消功能报错
CSFramework.WebApi支持多种数据库(Mssql/MySQL/Oracle)
C#.Net 的同名方法重载调用顺序
DbDataUpdate - 自动提交对象模型数据 - 数据类型测试
frmBaseDataDict基窗体新增3个属性
开发应用 - 策略模式(Strategy Pattern) 设计模式
C#判断对象类型为值类型、字符串对象引用类型或泛型
详述IComparer,IComparable接口,实现自定义方法比较对象大小并排序(C#)
Loginer 详解,全局用户登录对象
C# Model对象实例转换为URL网址参数Param形式