C# 如何对扩展方法进行分组?
我有一个静态类,其中包含一系列针对各种类型的扩展方法。是否有任何实用程序或方法将其拆分为几个类-每个目标类型都有单独的类 从“干净代码”的角度来看,将各种扩展方法放入不同的类是一个好主意,但是扩展方法的主要“分组”是通过将它们放入不同的名称空间来实现的。原因是扩展方法是通过“使用”适当的名称空间而可用的 将不同的扩展方法组放入不同的名称空间是一个好主意,因为可能会有冲突的扩展方法。如果发生这种情况,并且扩展方法的每个逻辑组都位于细粒度名称空间中,您应该能够通过简单地删除C# 如何对扩展方法进行分组?,c#,.net,refactoring,extension-methods,C#,.net,Refactoring,Extension Methods,我有一个静态类,其中包含一系列针对各种类型的扩展方法。是否有任何实用程序或方法将其拆分为几个类-每个目标类型都有单独的类 从“干净代码”的角度来看,将各种扩展方法放入不同的类是一个好主意,但是扩展方法的主要“分组”是通过将它们放入不同的名称空间来实现的。原因是扩展方法是通过“使用”适当的名称空间而可用的 将不同的扩展方法组放入不同的名称空间是一个好主意,因为可能会有冲突的扩展方法。如果发生这种情况,并且扩展方法的每个逻辑组都位于细粒度名称空间中,您应该能够通过简单地删除using语句中的一个来解
using
语句中的一个来解决冲突,从而留下包含您实际需要的扩展方法的using
语句
以下是一些最佳实践的链接:
我有另一种分组方式:
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中看到一个。您好,我将为您扩展的每种类型定义一个不同的类,称为类似typeExtensions的类,如果这些类不是太多,我会将它们保留在同一个文件和名称空间中。