繁体   English   中英

如何对扩展方法进行分组?

[英]How to group extension methods?

我有一个静态类,其中包含各种类型的扩展方法。 是否有任何实用程序或将其分为几个类的方法-每个目标类型的单独类。

从“干净的代码”的角度来看,将各种扩展方法放入不同的类中是一个好主意,但是扩展方法的主要“分组”是通过将它们放入不同的命名空间来实现的。 原因是可以通过“使用”适当的名称空间来使用扩展方法。

将不同的扩展方法组放入不同的名称空间是一个好主意,因为您可能会遇到冲突的扩展方法。 如果出现这种情况,和扩展方法,每个逻辑组是在一个细粒度的命名空间,你应该能够通过简单地移除的一个解决冲突using的语句,从而留下using语句包含你真正想要的扩展方法。

以下是一些最佳做法的链接:

http://blogs.msdn.com/b/vbteam/archive/2007/03/10/extension-methods-best-practices-extension-methods-part-6.aspx

我有另一种分组方式:

public class StringComplexManager
{
    public StringComplexManager(String value)
    {
        Value = value;
    }

    public String Value { get; set; }
}

public static class StringComplexExtensions
{
    public static StringComplexManager ComplexOperations(this String value)
    {
        return new StringComplexManager(value);
    }

    public static int GetDoubleLength(this StringComplexManager stringComplexManager)
    {
         return stringComplexManager.Value.Length * 2;
    }
}

用法是:

string a = "Hello"
a.ComplexOperations().GetDoubleLength()

ComplexOperation()对扩展方法进行分组,并缩小了智能感知的范围,因此,如果您最初有数百种字符串扩展方法,则现在只能在智能感知中看到一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM