如何在父构造函数中为属性设置默认值?
How can I set default value to an attribut in the parent constructor?
我有两个构造函数:
public abstract class A
{
public A(int a,int b = 0 ) {}
}
public class B : A
{
public B(int a , int b):base(a,b) {} // I would like to didn't call again the attribute b
// because it's set to 0 in the parent class
// public B(int a):base(a) {}
}
也许我的问题很荒谬,但我正在寻找一个技巧来避免在父项中重复调用默认设置为 0 的属性 class,事实上,我有很多子项 classes
可以吗?
更新:
这是在 MainWindow 中创建的 B 实例:
B b1 = new B(1); // a = 1 and b = 0 by default
B b2 = new B(2,1) // I would like to update the value b and set it to 1 for in the second instance created , In this case I got an error
// B does not contains a constructor that takes 2 arguments ...
唯一的方法是重载 B
:
中的构造函数
public class B : A
{
public B(int a) : base(a) { }
public B(int a, int b) : base(a, b) { }
}
我有两个构造函数:
public abstract class A
{
public A(int a,int b = 0 ) {}
}
public class B : A
{
public B(int a , int b):base(a,b) {} // I would like to didn't call again the attribute b
// because it's set to 0 in the parent class
// public B(int a):base(a) {}
}
也许我的问题很荒谬,但我正在寻找一个技巧来避免在父项中重复调用默认设置为 0 的属性 class,事实上,我有很多子项 classes
可以吗?
更新:
这是在 MainWindow 中创建的 B 实例:
B b1 = new B(1); // a = 1 and b = 0 by default
B b2 = new B(2,1) // I would like to update the value b and set it to 1 for in the second instance created , In this case I got an error
// B does not contains a constructor that takes 2 arguments ...
唯一的方法是重载 B
:
public class B : A
{
public B(int a) : base(a) { }
public B(int a, int b) : base(a, b) { }
}