Как я могу установить значение по умолчанию для атрибута в родительском конструкторе?

#c# #oop #constructor

#c# #ООП #конструктор

Вопрос:

У меня есть два конструктора :

 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 в родительском классе, на самом деле у меня много дочерних классов

Возможно ли это сделать?

Обновить :

Это экземпляр 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 ...  

Комментарии:

1. И в чем же дело public B(int a) : base(a) { } ?

2. Проблема в том , что , например , когда я вызываю класс B, мне нужно установить значение b для некоторых экземпляров равным 1, я обновлю свой вопрос

Ответ №1:

Единственный способ сделать это-перегрузить конструктор в B :

 public class B : A {  public B(int a) : base(a) { }  public B(int a, int b) : base(a, b) { } }