作者:蘑菇-2166_315 | 来源:互联网 | 2023-10-12 19:51
准备做一个系列,把扩展方法从最基本的概念讲起,到最后奉献一个常用扩展方法集合;扩展方法1.何为扩展方法扩展方法是C#3.0引入的语法特性,是一种特殊的静态方法。它使得我们能向现有的数据类型&
准备做一个系列,把扩展方法从最基本的概念讲起,到最后奉献一个常用扩展方法集合;
扩展方法
1. 何为扩展方法
扩展方法是C#3.0引入的语法特性,是一种特殊的静态方法。它使得我们能向现有的数据类型“动态”添加方法,而不需要创建行的派生类型、重新编译或直接修改原始类型的源代码。
注意扩展方法的要点:
1). 扩展方法必须是静态的,并且要在一个非泛型的静态类中。
2). 扩展方法第一个参数前必须有一个this关键字,它指明扩展方法将“附加于”哪个类型的对象上。
2. 扩展方法与原始类型同名时,扩展方法永远不会被调用
3. 扩展方法的泛型版本
static class MyExtensionMethods
{
public static void Test(this T obj)
{
Console.WriteLine(obj.ToString());
}
}
在调用扩展方法时可以可以不指定泛型类型参数的具体类型。DateTime.Now.Test();但是在实际开发中,需要给出明确的参数类型。以免影响代码的可读性、
4. 目的
提升代码的可读性,避免写一些重复性的代码了;--转自http://www.cnblogs.com/luqixinhe/archive/2012/10/31/2748809.html
string是c#里面最最常用的类,和它的使用频度比起来,它的操作确少的可怜,实例方法只有三十个左右,静态方法只有十多个,远远满足不了我们日常的需求。
本文使用扩展方法来增加string的功能,举出几个例子,也算是抛砖引玉吧!
首先我们把string类最常用的静态方法IsNullOrEmpty扩展成“实例”方法:
public static bool IsNullOrEmpty(this string s)
{
return string.IsNullOrEmpty(s);
}下面是调用代码:1 public static void Test1()
2 {
3 string s = "";
4 bool b1 = string.IsNullOrEmpty(s);
5 bool b2 = s.IsNullOrEmpty();
6 }
别小看这一步改进,扩展后可减少我们编写代码的时间,提高我们编码的速度。如你对此怀疑,将第4行和第5行的代码手工录入100次(不能复制粘贴)试试,就知道了!
如果你需要,也可以扩展出“IsNotNullOrEmpty”。
--http://www.cnblogs.com/ldp615/archive/2009/08/14/1546437.html