这不会编译:
namespace Constructor0Args
{
class Base
{
public Base(int x)
{
}
}
class Derived : Base
{
}
class Program
{
static void Main(string[] args)
{
}
}
}
相反,我收到以下错误:
“Constructor0Args.Base”不包含采用 0 个参数的构造函数
这是为什么?基类是否必须有一个带 0 个参数的构造函数?
It isn't- 问题是它需要调用some基本构造函数,用于初始化基本类型,以及default是打电话base()
。您可以通过在派生类型构造函数中自己指定特定的构造函数(和参数)来调整它:
class Derived : Base
{
public Derived() : base(123) {}
}
对于参数base
(或者,this
) 构造函数,您可以使用:
- 参数到current构造函数
- 文字/常量
- 静态方法调用(也涉及到上面的)
例如,以下是also有效,使用上面所有三个项目符号:
class Derived : Base
{
public Derived(string s) : base(int.Parse(s, NumberStyles.Any)) {}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)