C# 类的扩展方法
2016-01-28 10:45
295 查看
学过C#的都知道,object是所有类型的最终基类,而object中有一个ToString方法,因此,C#中的所有类型都拥有了ToString方法。
但是,如果调用对象为null的时候,将引发空引用异常NullReferenceException。
现在,通过C#中的扩展方法完成一个安全的ToString方法
这样,形如 string sss = null; sss.ToSafeString( ); 的代码就不会报错了。
可以看到这是一个静态类,类名可以是任意的,但是推荐以 类型名+Extension的方式命名,以此来标识这个是一个实现扩展方法的静态类。这儿,由于ToSafeString是面向object类型的,所有我就直接以Extension命名了。
例如,实现一个判断string是否为空的扩展方法
扩展方法的实现都是静态类的静态函数,第一个参数是调用扩展方法的对象,在类型前加this来标识。
但是,如果调用对象为null的时候,将引发空引用异常NullReferenceException。
现在,通过C#中的扩展方法完成一个安全的ToString方法
public static class Extension { public static string ToSafeString(this object obj) { if (null == obj) { return "";//这儿可以自定义返回值 } else { return obj.ToString( ); } } }
这样,形如 string sss = null; sss.ToSafeString( ); 的代码就不会报错了。
可以看到这是一个静态类,类名可以是任意的,但是推荐以 类型名+Extension的方式命名,以此来标识这个是一个实现扩展方法的静态类。这儿,由于ToSafeString是面向object类型的,所有我就直接以Extension命名了。
例如,实现一个判断string是否为空的扩展方法
public static class StringExtension { public static bool IsNullOrEmpty(this string str) { return String.IsNullOrEmpty(str); } }
扩展方法的实现都是静态类的静态函数,第一个参数是调用扩展方法的对象,在类型前加this来标识。
相关文章推荐
- 【C#】正则表达式
- C# 打印webBrowser打开的页面
- [C#]横竖都是4九宫格算法
- c# Winform 获取麦克风音量 控制麦克风音量大小 (自用笔记未测试)
- C# 类的序列化和反序列化
- 使用C#进行基于PI的开发
- C# Excel禁用项重新启用
- C# 快速使用protobuf的简单方法
- 使用C#调用PI-SDK进行基于PI的开发
- C#递归扫描文件夹中的文件
- C#好压命令行操作类
- C# Devexpress TreeListLookUpEdit控件默认选择一个数据
- 学习C#2
- c#简要概括面向对象的三大特征
- C#中交换两个数的值
- 学习C#1(窗体与界面设计)
- c#中的泛型
- 几种C#程序读取MAC地址的方法
- 使用EPPlus(C#)读写Excel
- C#之正则表达式