你有没有使用私人扩展方法?

Tha*_*iou 9 c# extension-methods

是否有选择使用私有扩展方法的优势?我没有发现任何用途.如果C#根本不允许它们会不会更好?

sar*_*ret 11

这有助于改进方法/类中的代码语法,但您不希望将该扩展方法提供的功能公开给代码库的其他区域.换句话说,作为常规私有静态助手方法的替代方法


Kla*_*sen 8

考虑以下:

public class MyClass
{
    public void PerformAction(int i) { }
}

public static class MyExtensions
{
    public static void DoItWith10(this MyClass myClass)
    {
        myClass.DoIt(10);
    }

    public static void DoItWith20(this MyClass myClass)
    {
        myClass.DoIt(20);
    }

    private static void DoIt(this MyClass myClass, int i)
    {
        myClass.PerformAction(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

我意识到这个例子在当前的形式中没有多大意义,但我确信你可以理解私有扩展方法提供的可能性,即具有使用私有扩展进行封装或组合的公共扩展方法的能力.