c#——扩展方法
来源:互联网 发布:古筝软件下载手机 编辑:程序博客网 时间:2024/05/16 10:29
扩展方法使你能够实现向现有类“添加”方法,而无需创建新的派生类,重新编译或者以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。
下面的示例演示为 System.String 类定义的一个扩展方法(静态类与静态方法向String类中添加新方法):
public static class MyExtensions { public static int WordCount(this String str) { return str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries).Length; } }
而且可以通过以下形式进行调用
string s = "Hello Extension Methods"; int i = s.WordCount();
只要有可能,必须扩展现有类型的客户端代码都应该通过创建从现有类型派生的新类型来达到这一目的。
在使用扩展方法来扩展你无法更改其源代码的类型时,你需要承受该类型实现中的更改会导致扩展方法失效的风险。
如果确实为给定类型实现了扩展方法,请记住以下几点:
1:如果扩展方法与该类型中定义的方法具有相同的签名,则扩展方法永远不会被调用。
2:在命名空间级别将扩展方法置于范围中。
例如,如果你在一个名为 Extensions 的命名空间中具有多个包含扩展方法的静态类,则这些扩展方法将全部由 using Extensions; 指令置于范围中。
针对已实现的类库,不应为了避免程序集的版本号递增而使用扩展方法。如果要向你拥有源代码的库中添加重要功能,应遵循适用于程序集版本控制的标准 .NET Framework 准则。
阅读全文
0 0
- 【C#】——扩展方法
- c#——扩展方法
- C#:StrokeCollection类扩展方法——边界框计算
- 扩展方法(C#)
- 扩展方法,Objective-C
- C#:扩展方法
- C#.Net 扩展方法
- C#-- 扩展方法
- C#.NET扩展方法
- C#-----扩展方法
- [C#]扩展方法
- 【C#】C# 扩展方法
- Linq系列—扩展方法
- C#==>扩展方法
- /*C#:扩展方法*/ 《自学系列》
- 【C#】C#的扩展方法
- 【Unity3D / Extension】 扩展方法01 —— 扩展Transfrom
- Objective-C——扩展(Extension)详解
- 圆角布局RCLayout
- poj3845:Fractal(坐标旋转)
- 二叉树 2.0 -- 非递归遍历
- linux下实现文件存储系统,创建和删除大量文件或文件夹时,updatedb进程会更新文件索引节点inode
- SEO 是什么?
- c#——扩展方法
- Linux下应用进程消失原因分析
- Rhyme/LinuxStudyNote7.1.3_用户和用户组管理(1)-用户配置文件(4)-组密码文件/etc/gshadow详细解析
- 【Android】源码分析
- POJ 3728 The merchant 离线tarjan
- 我的技术日志终于开张了
- iOS11 适配那些事1----亲测可行!
- Windows 2008 Server线程池前瞻(原创)
- 机器学习(Machine Learning)- 吴恩达(Andrew Ng )-笔记