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

C#==>扩展方法

2009-12-06 09:58 246 查看
1,如果在某些情况下,我们不能改动类的源码,这时如果要想给对象添加功能的话,就要使用扩展方法

2,扩展方法是静态的。

3,扩展方法中,可以访问多扩展类型中,所有公共方法和属性。

4,如果扩展方法与类中的方法同名,那么扩展方法就不被调用,已有的方法优先。

5,如下类

已有类ClassA,现要为它加一个方法FunctionB

namespace Object
{
class ClassA
{
public ClassA(int a)
{
this.A = a;
}

public int A
{
get;
set;
}

public void FunctionA()
{
this.A--;
}
}
}


添加扩展方法如下:

namespace Object
{
//此处不可定义Public,编译错误
static class ClassAExtension
{
/*其中this ClassA clsA是必须的,
这告诉编译器,这个方法FunctionB是ClassA的一部分。
如果需要传其他参数,只需要在this ClassA clsA后面添加即可,
如: FunctionB(this ClassA clsA, int j)*/
public static void FunctionB(this ClassA clsA)
{
clsA.A++;
}
}
}


扩展方法的调用:

ClassA cls = new ClassA(10);
cls.FunctionB();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: