黑马程序员技术交流社区
标题:
c#写扩展方法
[打印本页]
作者:
尹晓乐
时间:
2012-9-9 12:53
标题:
c#写扩展方法
学习MVC时,学会了写扩展方法,用起来很方便。
[csharp]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Text;
namespace MvcApp1.Content
{
//<%@ Import Namespace="MvcApp1.Content" %>
public static class MyHtmlHelper
{
public static string RedLable(this HtmlHelper helper, string lbstr)
{
StringBuilder sb = new StringBuilder();
sb.Append("<span style='color:red;'>");
sb.Append(lbstr);
sb.Append("</span>");
return sb.ToString();
}
}
}
下面,用上面这个形式来写我的扩展方法
[csharp]
using System;
using System.Collections.Generic;
using System.Text;
namespace Tools.Common
{
/// <summary>
/// 数据优化公共类
/// </summary>
public static class DataHelper
{
#region 根据是否为null或""返回string类型数据
/// <summary>
/// 根据是否为null或""返回string类型数据
/// </summary>
/// <param name="obj">要获取数据的对象</param>
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回""</param>
/// <returns></returns>
public static string IsNull(this object obj, params object[] defaultValue)
{
if (obj == null || "".Equals(obj.ToString().Trim()))
{
if (defaultValue.Length == 0 || defaultValue[0]==null) return "";
else return defaultValue[0].ToString() ;
}
else
{
return obj.ToString();
}
}
#endregion
#region 根据是否为null或""返回long类型数据
/// <summary>
/// 根据是否为null或""返回long类型数据
/// </summary>
/// <param name="obj">要获取数据的对象</param>
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回long.MinValue</param>
/// <returns></returns>
public static long IsNull(this object obj, params long[] defaultValue)
{
if (obj == null || "".Equals(obj.ToString().Trim()))
{
if (defaultValue.Length == 0) return long.MinValue;
else return defaultValue[0];
}
else
{
return long.Parse(obj.ToString());
}
}
#endregion
#region 根据是否为null或""返回int类型数据
/// <summary>
/// 根据是否为null或""返回int类型数据
/// </summary>
/// <param name="obj">要获取数据的对象</param>
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回int.MinValue</param>
/// <returns></returns>
public static int IsNull(this object obj, params int[] defaultValue)
{
if (obj == null || "".Equals(obj.ToString().Trim()))
{
if (defaultValue.Length == 0) return int.MinValue;
else return defaultValue[0];
}
else
{
return int.Parse(obj.ToString());
}
}
#endregion
#region 根据是否为null或""返回DateTime类型数据
/// <summary>
/// 根据是否为null或""返回DateTime类型数据
/// </summary>
/// <param name="obj">要获取数据的对象</param>
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回DateTime.MinValue</param>
/// <returns></returns>
public static DateTime IsNull(this object obj, params DateTime[] defaultValue)
{
if (obj == null || "".Equals(obj.ToString().Trim()))
{
if (defaultValue.Length == 0) return DateTime.MinValue;
else return defaultValue[0];
}
else
{
return DateTime.Parse(obj.ToString());
}
}
#endregion
#region 根据是否为null或""返回double类型数据
/// <summary>
/// 根据是否为null或""返回double类型数据
/// </summary>
/// <param name="obj">要获取数据的对象</param>
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回double.MinValue</param>
/// <returns></returns>
public static double IsNull(this object obj, params double[] defaultValue)
{
if (obj == null || "".Equals(obj.ToString().Trim()))
{
if (defaultValue.Length == 0) return double.MinValue;
else return defaultValue[0];
}
else
{
return double.Parse(obj.ToString());
}
}
#endregion
#region 根据是否为null或""返回decimal类型数据
/// <summary>
/// 根据是否为null或""返回decimal类型数据
/// </summary>
/// <param name="obj">要获取数据的对象</param>
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回decimal.MinValue</param>
/// <returns></returns>
public static decimal IsNull(this object obj, params decimal[] defaultValue)
{
if (obj == null || "".Equals(obj.ToString().Trim()))
{
if (defaultValue.Length == 0) return decimal.MinValue;
else return defaultValue[0];
}
else
{
return decimal.Parse(obj.ToString());
}
}
#endregion
}
}
调用方法:
[csharp]
long L = "12312321".IsNull(long.MinValue);
Response.Write(L);
结果:
作者:
许庭洲
时间:
2012-12-28 07:12
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2