您的位置:首页 > 编程语言 > C#

c#写扩展方法

2014-04-16 09:02 141 查看
学习MVC时,学会了写扩展方法,用起来很方便。

01
using
System;
02
using
System.Collections.Generic;
03
using
System.Linq;
04
using
System.Web;
05
using
System.Web.Mvc;
06
using
System.Text;
07
08
namespace
MvcApp1.Content
09
{
10
//<%@ Import Namespace="MvcApp1.Content" %>
11
public
static
class
MyHtmlHelper
12
{
13
public
static
string
RedLable(
this
HtmlHelper helper,
string
lbstr)
14
{
15
StringBuilder sb =
new
StringBuilder();
16
sb.Append(
"<span style="
color:red;
">"
);
17
sb.Append(lbstr);
18
sb.Append(
"</span>"
);
19
return
sb.ToString();
20
}
21
}
22
}
下面,用上面这个形式来写我的扩展方法

001
using
System;
002
using
System.Collections.Generic;
003
using
System.Text;
004
005
namespace
Tools.Common
006
{
007
/// <summary> /// 数据优化公共类
008
/// </summary> public static class DataHelper
009
{
010
#region 根据是否为null或""返回string类型数据
011
/// <summary> /// 根据是否为null或""返回string类型数据
012
/// </summary> /// <param name="obj">要获取数据的对象
013
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回""
014
/// <returns></returns> public static string IsNull(this object obj, params object[] defaultValue)
015
{
016
if
(obj ==
null
||
""
.Equals(obj.ToString().Trim()))
017
{
018
if
(defaultValue.Length == 0 ||defaultValue[0]==
null
)
return
""
;
019
else
return
defaultValue[0].ToString();
020
}
021
else
022
{
023
return
obj.ToString();
024
}
025
}
026
#endregion
027
028
#region 根据是否为null或""返回long类型数据
029
/// <summary> /// 根据是否为null或""返回long类型数据
030
/// </summary> /// <param name="obj">要获取数据的对象
031
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回long.MinValue
032
/// <returns></returns> public static long IsNull(this object obj, params long[] defaultValue)
033
{
034
if
(obj ==
null
||
""
.Equals(obj.ToString().Trim()))
035
{
036
if
(defaultValue.Length == 0)
return
long
.MinValue;
037
else
return
defaultValue[0];
038
}
039
else
040
{
041
return
long
.Parse(obj.ToString());
042
}
043
}
044
#endregion
045
046
#region 根据是否为null或""返回int类型数据
047
/// <summary> /// 根据是否为null或""返回int类型数据
048
/// </summary> /// <param name="obj">要获取数据的对象
049
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回int.MinValue
050
/// <returns></returns> public static int IsNull(this object obj, params int[] defaultValue)
051
{
052
if
(obj ==
null
||
""
.Equals(obj.ToString().Trim()))
053
{
054
if
(defaultValue.Length == 0)
return
int
.MinValue;
055
else
return
defaultValue[0];
056
}
057
else
058
{
059
return
int
.Parse(obj.ToString());
060
}
061
}
062
#endregion
063
064
#region 根据是否为null或""返回DateTime类型数据
065
/// <summary> /// 根据是否为null或""返回DateTime类型数据
066
/// </summary> /// <param name="obj">要获取数据的对象
067
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回DateTime.MinValue
068
/// <returns></returns> public static DateTime IsNull(this object obj, params DateTime[] defaultValue)
069
{
070
if
(obj ==
null
||
""
.Equals(obj.ToString().Trim()))
071
{
072
if
(defaultValue.Length == 0)
return
DateTime.MinValue;
073
else
return
defaultValue[0];
074
}
075
else
076
{
077
return
DateTime.Parse(obj.ToString());
078
}
079
}
080
#endregion
081
082
#region 根据是否为null或""返回double类型数据
083
/// <summary> /// 根据是否为null或""返回double类型数据
084
/// </summary> /// <param name="obj">要获取数据的对象
085
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回double.MinValue
086
/// <returns></returns> public static double IsNull(this object obj, params double[] defaultValue)
087
{
088
if
(obj ==
null
||
""
.Equals(obj.ToString().Trim()))
089
{
090
if
(defaultValue.Length == 0)
return
double
.MinValue;
091
else
return
defaultValue[0];
092
}
093
else
094
{
095
return
double
.Parse(obj.ToString());
096
}
097
}
098
#endregion
099
100
#region 根据是否为null或""返回decimal类型数据
101
/// <summary> /// 根据是否为null或""返回decimal类型数据
102
103
/// </summary> /// <param name="obj">要获取数据的对象
104
/// <param name="defaultValue">为null或""时返回的默认值,不指定则返回decimal.MinValue
105
/// <returns></returns> public static decimal IsNull(this object obj, params decimal[] defaultValue)
106
{
107
if
(obj ==
null
||
""
.Equals(obj.ToString().Trim()))
108
{
109
if
(defaultValue.Length == 0)
return
decimal
.MinValue;
110
else
return
defaultValue[0];
111
}
112
else
113
{
114
return
decimal
.Parse(obj.ToString());
115
}
116
}
117
#endregion
118
}
119
}
调用方法:

1
long
L =
"12312321"
.IsNull(
long
.MinValue);
2
Response.Write(L);
结果:



转自:http://blog.csdn.net/pukuimin1226/article/details/7931930
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: