我有一个静态类,有各种类型的扩展方法。是否有任何实用程序或方法将其拆分为几个类 - 每个目标类型的单独类。
答案 0 :(得分:5)
从“干净代码”的角度来看,将各种扩展方法放到不同的类中是一个好主意,但扩展方法的主要“分组”通过将它们放入不同的命名空间来实现。原因是通过“使用”适当的命名空间可以获得扩展方法。
将不同的扩展方法组放入不同的命名空间是个好主意,因为您可能会遇到冲突的扩展方法。如果发生这种情况,并且每个扩展方法的逻辑组都在细粒度的命名空间中,您应该能够通过简单地删除其中一个using
语句来解决冲突,从而保留using
语句,包含您真正想要的扩展方法。
以下是一些最佳做法的链接:
答案 1 :(得分:0)
我有另一种分组方式:
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()
对扩展方法进行分组并缩小intellisense范围,这样如果您最初有数百个字符串扩展方法,那么现在只能在intellisense中看到一个。