c#写扩展方法

来源:互联网 发布:光大证券mac无法登陆 编辑:程序博客网 时间:2024/06/05 15:37

学习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); 

结果:12312321

原创粉丝点击