C#==>扩展方法
2009-12-06 09:58
246 查看
1,如果在某些情况下,我们不能改动类的源码,这时如果要想给对象添加功能的话,就要使用扩展方法
2,扩展方法是静态的。
3,扩展方法中,可以访问多扩展类型中,所有公共方法和属性。
4,如果扩展方法与类中的方法同名,那么扩展方法就不被调用,已有的方法优先。
5,如下类
已有类ClassA,现要为它加一个方法FunctionB
添加扩展方法如下:
扩展方法的调用:
ClassA cls = new ClassA(10);
cls.FunctionB();
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();
相关文章推荐
- c# 扩展方法奇思妙用基础:Dictionary<TKey, TValue> 扩展
- c# 扩展方法奇思妙用高级篇三:Enumerable.Cast<T> 应用
- C# λ运算符=>匿名方法 lambda表达式
- 19.C#逐一介绍IEnumerable和IEnumerable<T>中的扩展方法(10.3-10.5)
- c#扩展方法奇思妙用基础篇五:Dictionary<TKey, TValue> 扩展
- C#编程:泛型中接口IEnumerable<T>中GetEnmerator方法的讨论
- C#==>匿名方法
- C#操作字符串方法总结<转>
- (原创)利用扩展方法,给 IEnumerable<T> 增加一个生成 Html 的 CheckBox 标签的方法,不用 C# 中的反射技术
- 在C#.NET中,关于<%%>使用方法
- C#中泛型集合List<T>反序列化问题及解决方法
- 用Java简单实现C#的参数为Action<T> Function<T,boolean>扩展方法
- (原创)利用扩展方法,给 IEnumerable<T> 增加一个生成 Html 的 select 标签的方法,不用 C# 中的反射技术
- C#中Queue<T>类的使用以及部分方法的源码分析
- c#扩展方法奇思妙用高级篇一:改进 Scottgu 的 "In" 扩展
- c#扩展方法奇思妙用高级篇三:Enumerable.Cast<T>应用
- 读<<CLR via C#>>总结(7) 以传引用的方式向方法传递参数---ref&out
- C#泛型集合List<T>自带方法之排序
- c# 重载运算符(+-|&)和扩展方法
- c# 扩展方法奇思妙用基础篇五:Dictionary<TKey, TValue> 扩展