命名空间在扩展方法中的妙用
来源:互联网 发布:约瑟夫环的数组实现 编辑:程序博客网 时间:2024/05/16 19:20
.NET的不同版本中,有很多方法是新加的,而且是以扩展方法的形式来呈现,但我们会发现引用的命名空间并没有增加,请看下图。
这样,在我们使用扩展方法的时候,不并不觉得是扩展方法,而是相当于实例中的原生方法。依据这一思路,我们在写扩展方法的时候,也可以将扩展方法的命名空间与要扩展实例的命名空间保持一致,这样在引用到该实例的地方,自然就会有相应的扩展方法,而不需要额外的再引入命名空间。如果扩展方法放在不同的命名空间下,那么在没有引用该命名空间时,扩展方法是会无法使用,这样在编程的过程中会带来诸多的不便,所以如果可能的话,建议扩展方法的命名空间与原实例的命名空间保持一致。下面举个例子。
假如我们需要判断一些浮点数是否是整数,一般的判断方法是通过计算然后确定。但因为这个方法用的比较频繁,所以我们希望能直接在浮点数本身调用,为此我们给float类型增加了一个扩展方法,并与float保持在同一个命名空间下。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace System{ public static class Digit { /// <summary> /// 是否为整数 /// </summary> /// <param name="source"></param> /// <returns></returns> public static bool IsInt(this float source) { return (source - Math.Floor(source)) == 0; } }}调用如下
会发现,调用起来相当方便,就像是float中原生的一样,而且还不需要额外引用命名空间。
转载请注明出处。
0 0
- 命名空间在扩展方法中的妙用
- jQuery扩展命名空间(扩展方法)
- 外壳命名空间扩展
- [转帖]外壳命名空间扩展
- 理解shell命名空间扩展
- C++中的命名空间
- C#中的命名空间
- MXML中的命名空间
- C++中的命名空间
- C++中的命名空间
- Javascript中的命名空间
- C++中的命名空间
- c#中的命名空间
- c#中的命名空间
- C++中的命名空间
- struts2中的命名空间
- PHP中的命名空间
- android中的命名空间
- 软件智能化理念探讨
- osx 库相关的常用命令
- 一天一排序之“冒泡排序(Bubble_sort)”
- 百度空间 新浪空间 阿里空间和传统的服务器空间区别?
- tftp(1)命令
- 命名空间在扩展方法中的妙用
- NSOperationQueue+NSBlockOPeration实例,下载合成图片
- CocoaPods安装使用及配置私有库
- 关于block的使用
- Spring MVC 集成 Apache Shiro权限控制-测试可行
- Swift在导航栏左侧或者右侧放置多个按钮
- bzoj2756 [SCOI2012]奇怪的游戏
- 我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
- AllJoyn核心应用教程【第三章】:接口编写与信号设置