c#写扩展方法

来源:互联网 发布:网上购火车票软件 编辑:程序博客网 时间:2024/05/22 11:43

学习MVC时,学会了写扩展方法,用起来很方便。

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();        }    }}


 

下面,用上面这个形式来写我的扩展方法

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    }}


调用方法:

            long L = "12312321".IsNull(long.MinValue);            Response.Write(L);


结果: