C#类扩展方法,字符串对象转换,常用扩展方法StringExtensions
作者:作者不详  发布日期:2020/04/16 18:30:12
  C#类扩展方法,字符串对象转换,常用扩展方法StringExtensions

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


C#类扩展方法


MSDN中的定义是:扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this修饰符为前缀。  


“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”


可以对String,Int,DataRow,DataTable等这些类型的基础上增加一个或多个方法,使用时不需要去修改或编译类型本身的代码。


C# Code:

/// <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框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

上一篇 下一篇