代码之家  ›  专栏  ›  技术社区  ›  Thanos Papathanasiou

您使用过私有扩展方法吗?

  •  9
  • Thanos Papathanasiou  · 技术社区  · 15 年前

    选择使用私有扩展方法有什么好处吗?我什么都没找到。如果C根本不允许这样做,情况会更好吗?

    3 回复  |  直到 15 年前
        1
  •  11
  •   saret    15 年前

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

        2
  •  8
  •   Klaus Byskov Pedersen    15 年前

    考虑以下事项:

    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);
        }
    }
    

    我认识到这个示例在其当前形式上没有多大意义,但是我确信您可以理解私有扩展方法提供的可能性,即拥有使用私有扩展进行封装或组合的公共扩展方法的能力。

        3
  •  3
  •   Dolbz    15 年前

    我只是在谷歌上搜索调查,因为我怀疑它们是否有用。然而,这对他们来说是一个很好的说明性应用:

    http://odetocode.com/blogs/scott/archive/2009/10/05/private-extension-methods.aspx