代码之家  ›  专栏  ›  技术社区  ›  yoav.str

如何绕过基本构造函数

  •  1
  • yoav.str  · 技术社区  · 15 年前

    假设我有一对父子,他们应该都是非抽象的,我不会绕着父亲转,因为我所做的是:

     public class D
    {
        public D(int x) { }
    
        public D()
        {
            Console.WriteLine("D:constructor");
        }
    
    }
    public class E:D
    {
        public E() : base(1)
        {
            Console.WriteLine("E:constructor");
        }
    

    }

    有没有其他更优雅的方式绕过父构造函数?

    编辑:这只是一个样本,我确实有一个原因,惰性是在一个上帝的做法或只是因为c'tor是不同的,我应该建立另一个设计?

    2 回复  |  直到 15 年前
        1
  •  0
  •   jsmith    15 年前

    这是用c#处理基本构造函数的方法。我能建议的唯一更优雅的解决方案是在父类中很少使用默认构造函数。可能只是初始化适当的属性,或者什么都不做。这样,如果您不希望它输出“D:constructor”,您仍然可以使用E的默认构造函数,而不调用需要int的基本构造函数。

    问题不在于它的设计方式,而在于您创建构造函数的方式。

        2
  •  0
  •   Pieter van Ginkel    15 年前