【问题标题】:Why cant i use base constructor in c# [duplicate]为什么我不能在 C# 中使用基本构造函数 [重复]
【发布时间】:2021-10-13 11:54:51
【问题描述】:

假设我们有两个类

class baseClass
{
    public baseClass()
    {

    }
    public baseClass(int value)
    {

    }
}

class derivedClass
{

}

有没有办法从derivedClass 调用参数化构造函数

derivedClass instance = new derivedClass(1)

没有在 derivedClass 中实现构造函数,该构造函数调用 base(value)

【问题讨论】:

标签: c# constructor derived-class


【解决方案1】:

你在寻找类似的东西

   class BaseClass
   {
      public BaseClass()
      {

      }
      public BaseClass(int value)
      {

      }
   }

   class DerivedClass : BaseClass
   {
      public DerivedClass(int value) : base(value)
      {

      }
   }

这允许您调用:

DerivedClass test = new DerivedClass(2);

【讨论】:

  • 我知道这种解决方案,但我想知道是否有任何解决方案我不需要这部分:public DerivedClass(int value) : base(value) { } 在任何派生类中
  • @NeoPrince 不,你必须在子类中定义你想要的构造函数来传播你想要的东西。以geeksforgeeks.org/c-sharp-inheritance-in-constructorsC# MSDoc 为例
  • OP 说,without implmenting a constructor in derivedClass... 这正好相反。
  • 除非您在派生构造函数之一中调用 base(value),否则我认为您不能。 BaseClass 构造函数无法定义 DerivedClass 实例。
猜你喜欢
  • 2018-03-28
  • 2010-10-12
  • 2011-01-11
  • 2015-05-28
  • 2022-01-06
  • 2014-07-20
  • 2020-03-06
  • 2015-03-10
  • 1970-01-01
相关资源
最近更新 更多