代码之家  ›  专栏  ›  技术社区  ›  Rodrick Chapman

这段代码是否描述了C#中的存在类型?

  •  1
  • Rodrick Chapman  · 技术社区  · 14 年前

    explanation question 我只是想知道这是否是一种在C中构造它的方法:

    public abstract class SomeExistentialType
    {
        private SomeExistentialType() { }
    
    
        public abstract int Foo();
    
        public ExistentialType Create()
        {
            return new ConcreteType1();
        }
    
        private class ConcreteType1: SomeExistentialType
        {
            public override int Foo()
            {
                //some implementation...
            }
        }
    
        private class ConcreteType1: SomeExistentialType
        {
            public override int Foo()
            {
                //some implementation...
            }
        }
    
        private class ConcreteType1: SomeExistentialType
        {
            public override int Foo()
            {
                //some implementation...
            }
        }
    }
    

    2 回复  |  直到 7 年前
        1
  •  1
  •   Erik Funkenbusch    14 年前

    听起来很像 pImpl idiom .

    我不喜欢欺骗开发人员或者强迫他们用这些方法做一些特定的事情。在C/C++中,我可以理解piml习惯用法的正当性,因为C++在C和.NET中缺少很多保护,但是很好。

        2
  •  0
  •   Kannan Goundan    13 年前

    不,这不是存在主义类型。在关于存在类型的另一个问题的答案中,请看VirtualMachine示例。