VS2008&C#3.5语言特色系列[视频]:扩展方法(Extension Methods)
来源:互联网 发布:美图薪资待遇 知乎 编辑:程序博客网 时间:2024/06/05 06:37
扩展方法的作用:当你对某个类型想附加新的功能(方法),但是你不能得到或者无法去修改原类型的源码的时候。使用扩展方法的时候,并没有对原有的类型产生任何的影响,仅仅是在当前应用程序中对其扩展了功能。
扩展方法必须是静态的,所以必须在静态类中去定义
扩展方法必须使用this关键字修饰参数,this代表其所修饰的类型被扩展了功能,附加上了相应的扩展方法。
扩展方法的参数可以有多个,但是只有第一个参数需要用this关键字修饰。
扩展方法可以有多个重载。
使用扩展方法可以对接口进行扩展
通过使用ILDASM进行分析,发现扩展方法在本质上还是调用了静态类的静态方法,然后将类型作为参数传入,具体请参看视频的演示
扩展方法实际是编译器调用某个类的某个方法的时候,先去这个类找,如果有这个方法,则就调用;如果找不到,根据引用的命名空间,再去找扩展方法(静态类的静态方法)。找到,就使用,找不到当然就编译错误了。
扩展方法跟类的方法冲突时候,编译使用不会报任何错误,这时候以类的方法优先级最高,这时我们使用类的方法,而不是扩展方法。
下面是方法的从高到低的优先级:
1. 实例方法
2. 在同一个命名空间里的扩展方法
3. 在当前命名空间之外的扩展方法
和继承不同的是,扩展方法只允许添加,不允许改变
视频下载:
VS2008&C#3.5语言特色系列:扩展方法(共2部分,第1部分)
http://download.csdn.net/source/422396
VS2008&C#3.5语言特色系列:扩展方法(共2部分,第2部分)
http://download.csdn.net/source/423077
- VS2008&C#3.5语言特色系列[视频]:扩展方法(Extension Methods)
- VS2008&C#3.5语言特色系列[视频]:部分方法(Partial Methods)
- VS2008&C#3.5语言特色系列[视频]:自动属性(Automatic Properties)
- Extension Methods(扩展方法)
- C# -- 扩展方法的应用(Extension Methods)
- C#3.0 中的扩展方法 (Extension Methods)
- C#3.0 中的扩展方法 (Extension Methods)
- C#3.0 中的扩展方法 (Extension Methods)
- C#3.0 中的扩展方法 (Extension Methods)
- C#3.0 中的扩展方法 (Extension Methods)
- C#3.0 中的扩展方法 (Extension Methods)
- VS2008&C#3.5语言特色系列[视频]:隐式类型的局部变量(Implicitly Typed Local Variables)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- Struts学习推荐及实例
- 特别推荐 JBDM 学习资料
- 里程碑:workim.cn Alpha版发布
- Eclipse开启你的J2ME的梦幻之旅。
- [J2SE]List中的排序
- VS2008&C#3.5语言特色系列[视频]:扩展方法(Extension Methods)
- 关于奥普迪词典软件竞赛的一点体会、抱怨与建议
- 从今天开始,开通我的博客
- 人生感悟:从遗憾中领略圆满
- Google的盈利模式
- Java-Abstract classes and methods
- VS2008&C#3.5语言特色系列[视频]:部分方法(Partial Methods)
- 打开dsw或者dsp新开一个vc
- 【转】C#键盘钩子