是否有选择使用私有扩展方法的优势?我没有发现任何用途。如果C#根本不允许它们会不会更好?
答案 0 :(得分:11)
这有助于改进方法/类中的代码语法,但您不希望将该扩展方法提供的功能公开给代码库的其他区域。换句话说,作为常规私有静态辅助方法的替代方法
答案 1 :(得分: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);
}
}
我意识到这个例子在当前的形式中没有多大意义,但我相信你可以理解私有扩展方法提供的可能性,即能够使用私有扩展来进行封装的公共扩展方法或组合物。
答案 2 :(得分:3)
我只是用Google搜索调查,因为我怀疑它们有多大用处。然而,这对他们来说是一个很好的说明性应用:
http://odetocode.com/blogs/scott/archive/2009/10/05/private-extension-methods.aspx