现有两个类A是B的父类
class A
{
public A(){}
public A(int a){}
}
class B : A
{
public B(){}
public B(int a):base(a) ///问题,现在本人想在这里再调用无参构造函数B(),怎么样实现?谢谢
{}
}
class A
{
public A(){}
public A(int a){}
}
class B : A
{
public B(){}
public B(int a):base(a) ///问题,现在本人想在这里再调用无参构造函数B(),怎么样实现?谢谢
{}
}
解决方案
5
理解错了
class Class1 { public Class1() { init(); } public Class1(int value) : base(value) { init(); } void init() { } }
5
5
这么说吧。所谓有参构造函数可以使用 :this() 调用无参构造函数,这只是c#的一个语法,并不是什么.net 基本特性。在.net 中(最终基础都是msil)则是真的是明确调用另一个函数的,像调用普通函数一样去调用。也就是说,你可以先执行一些其它代码,然后才调用无参构造函数。然后在c#中你直接做不到这一点,c#语法只是为你提供一个更加狭隘一些规范。那么你要完成相同功能,按照这个规范,就应该变通一下,就应该调用普通的函数。
5
构造函数通常是多选一的, 同时调用多个没有道理, 把需要的功能写到方法中调用就好了.