命名空间在扩展方法中的妙用

.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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值