将参数传递给基类构造函数

Posted

技术标签:

【中文标题】将参数传递给基类构造函数【英文标题】:Passing parameters to the base class constructor 【发布时间】:2021-10-25 07:18:35 【问题描述】:

如果基类和派生类都有带参数的构造函数,那么我们在哪里?

【问题讨论】:

这是一个重复的问题。 ***.com/questions/12051/… 谷歌搜索“基类构造函数参数”会为您带来正确的。 你说“你不能实例化一个抽象类”,但这并不完全正确。如果您创建非抽象派生类的实例,则该实例也是抽象基类的实例。它也是 System.Object 类的一个实例。 仅供参考,即使它是 abstract 类,它也可以定义自定义构造函数,其参数可以传入。它们不能直接实例化/调用,但是而是在派生类型中通过使用base keyword 和派生构造函数来引用。 【参考方案1】:

像这样:

public class DerivedClass : BaseClass

    public DerivedClass(int derivedParam, String baseParam):base(baseParam)
    
    

这里的base关键字调用与提供的参数重载匹配的基类构造函数。

【讨论】:

如果基构造函数被调用为:base(param),是否仍然调用默认构造函数? 没有。该构造函数必须调用this()@Ahmn21

以上是关于将参数传递给基类构造函数的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数传递给静态类构造函数?

如何将构造函数参数传递给 AppDomain.CreateInstanceXXX?

当我们将对象作为参数传递给方法时,为啥会调用复制构造函数?

我如何将参数传递给构造函数? [关闭]

.NET Core DI,将参数传递给构造函数的方法

Web3 + Solidity:将参数传递给合约的构造函数