学习MVC时,学会了写扩展方法,用起来很方便。
02 |
using System.Collections.Generic; |
08 |
namespace MvcApp1.Content |
10 |
//<%@ Import Namespace="MvcApp1.Content" %> |
11 |
public static class MyHtmlHelper |
13 |
public static string RedLable(this HtmlHelper helper, string lbstr) |
15 |
StringBuilder sb = new StringBuilder(); |
16 |
sb.Append("<span style="color:red;">"); |
下面,用上面这个形式来写我的扩展方法
002 |
using System.Collections.Generic; |
005 |
namespace Tools.Common |
007 |
/// <summary> /// 数据优化公共类 |
008 |
/// </summary> public static class DataHelper |
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) |
016 |
if (obj == null || "".Equals(obj.ToString().Trim())) |
018 |
if (defaultValue.Length == 0 || defaultValue[0]==null) return ""; |
019 |
else return defaultValue[0].ToString() ; |
023 |
return obj.ToString(); |
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) |
034 |
if (obj == null || "".Equals(obj.ToString().Trim())) |
036 |
if (defaultValue.Length == 0) return long.MinValue; |
037 |
else return defaultValue[0]; |
041 |
return long.Parse(obj.ToString()); |
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) |
052 |
if (obj == null || "".Equals(obj.ToString().Trim())) |
054 |
if (defaultValue.Length == 0) return int.MinValue; |
055 |
else return defaultValue[0]; |
059 |
return int.Parse(obj.ToString()); |
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) |
070 |
if (obj == null || "".Equals(obj.ToString().Trim())) |
072 |
if (defaultValue.Length == 0) return DateTime.MinValue; |
073 |
else return defaultValue[0]; |
077 |
return DateTime.Parse(obj.ToString()); |
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) |
088 |
if (obj == null || "".Equals(obj.ToString().Trim())) |
090 |
if (defaultValue.Length == 0) return double.MinValue; |
091 |
else return defaultValue[0]; |
095 |
return double.Parse(obj.ToString()); |
100 |
#region 根据是否为null或""返回decimal类型数据 |
101 |
/// <summary> /// 根据是否为null或""返回decimal类型数据 |
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) |
107 |
if (obj == null || "".Equals(obj.ToString().Trim())) |
109 |
if (defaultValue.Length == 0) return decimal.MinValue; |
110 |
else return defaultValue[0]; |
114 |
return decimal.Parse(obj.ToString()); |
调用方法:
1 |
long L = "12312321".IsNull(long.MinValue); |
结果:

转自:http://blog.csdn.net/pukuimin1226/article/details/7931930
- C#语法糖之第四篇: 扩展方法
今天继续分享C#4.0语法糖的扩展方法,这个方法也是我本人比较喜欢的方法.大家先想想比如我们以前写的原始类型不能满足现在的需求,而需要在该类型中添加新的方法来实现时大家会怎么做.我先说一下我没有学习到 ...
- C#语法糖: 扩展方法(常用)
今天继续分享C#4.0语法糖的扩展方法,这个方法也是我本人比较喜欢的方法.大家先想想比如我们以前写的原始类型不能满足现在的需求,而需要在该类型中添加新的方法来实现时大家会怎么做.我先说一下我没有学习到 ...
- Asp.Net MVC以 JSON传值扩展方法
Asp.Net在客户端和服务器端,以JSON形式相互传值,可写扩展方法,用到的类型如下: DataContractJsonSerializer类: 该类在System.Runtime.Serializ ...
- c#扩展方法的使用
"扩展方法使您能够向现有类型"添加"方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型." 1.为什么会有扩展方法 你一定很疑问什么是扩展方法!什么 ...
- JavaScript学习总结(十四)——JavaScript编写类的扩展方法
在JavaScript中可以使用类的prototype属性来扩展类的属性和方法,在实际开发当中,当JavaScript内置的那些类所提供的动态 ...
- Asp.Net MVC以JSON传值扩展方法
Asp.Net在客户端和服务器端,以JSON形式相互传值,可写扩展方法,用到的类型如下: DataContractJsonSerializer类: 该类在System.Runtime.Serializ ...
- C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法
1.自动属性(Auto-Implemented Properties) //以前的写法 .net2.0 private string _userName; public string UserName ...
- 给IConfiguration写一个GetAppSetting扩展方法
给 IConfiguration 写一个 GetAppSetting 扩展方法 Intro 在 .net core 中,微软已经默认使用 appsettings.json 来代替 app.config ...
- C#复习笔记(4)--C#3:革新写代码的方式(扩展方法)
扩展方法 扩展方法有以下几个需求: 你想为一个类型添加一些 成员: 你不需要为类型的实例添加任何更多的数据: 你不能改变类型本身, 因为是别人的代码. 对于C#1和C#2中的静态方法,扩展方法是一种更 ...
随机推荐
- JFinal 3.3 学习 -- JFinalConfig (配置web项目)
开篇 概述 基于JFinal的web项目需要创建一个继承自JFinalConfig类的子类,该类用于对整个web项目进行配置. JFinalConfig子类需要实现六个抽象方法,如下所示: publ ...
- android 实现 view 滑动
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 1,通过view 的 滑动到 方法 或者 通过什么滑动 方法 实现. 适合 视图 ...
- VMWare虚拟机下CentOS 配置网络实现远程连接,提供Web访问
最近使用VMWARE虚拟机当中redhat操作系统,感觉直接使用很不方便,于是就决定配置下redhat网络,通过本机远程工具SecureCRT来连接redhat使用. 环境说明:本机操 ...
- 仅100行的JavaScript DOM操作类库
如果你构建过Web引用程序,你可能处理过很多DOM操作.访问和操作DOM元素几乎是每一个Web应用程序的通用需求.我们我们经常从不同的控件收集信息,我们需要设置value值,修改div或span标签的 ...
- 【POJ】1840:Eqs【哈希表】
Eqs Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 18299 Accepted: 8933 Description ...
- 【Go入门教程7】面向对象(method、指针作为receiver、method继承、method重写)
前面两章我们介绍了函数和struct,那你是否想过函数当作struct的字段一样来处理呢?今天我们就讲解一下函数的另一种形态,带有接收者(receiver)的函数,我们称为method method ...
- HDOJ 4876 ZCC loves cards
枚举组合,在不考虑连续的情况下推断能否够覆盖L...R,对随机数据是一个非常大的减枝. 通过检測的暴力计算一遍 ZCC loves cards Time Limit: 4000/2000 MS (Ja ...
- [Asp.net web api]缓存
摘要 为了提高接口的性能,我们常做的优化就包括缓存,对经常访问但变化不大的数据进行缓存.或者使用http的缓存,减少请求的次数. web api缓存 在提供的api,我们也可以实现缓存,来减少访问的次 ...
- 用最简单的例子理解适配器模式(Adapter Pattern)
中国足球的水平虽然不高,但实际上,在每个城市会有一批足球爱好者,他们踢球.看球.懂球.有这样的2个足球爱好者,一个是左脚选手,另一个是右脚选手. public class PlayWithLeft { ...
- Matlab的linprog解决简单线性规划问题
一个简单的线性规划问题,使用Matlab的linprog解决 假定有n种煤,各种煤的配比为x1,x2,x3,……首先需要满足下列两个约束条件,即 x1+x2+x3……+xn=1 x1≥0, x2≥0, ...