C#: если класс имеет двух конструкторов, каков лучший способ для этих конструкторов совместно использовать некоторый код? [дубликат]

34
задан CJ7 30 June 2010 в 02:47
поделиться

4 ответа

Просто подключитесь к общему конструктору ...

public MyObject(int setZ)
  : this()
{
  z = setZ;
}
63
ответ дан 27 November 2019 в 16:25
поделиться

Используйте синтаксис this () .

public MyObject(int setZ) : this() {
    z = setZ;
}
8
ответ дан 27 November 2019 в 16:25
поделиться

Это очень похоже на то, как вы делаете это с методами. Обычно вы делаете что-то вроде:

public void SetA(int a)
{
    this.a = a;
}

public void SetAandB(int a, int b)
{
    this.SetA(a);
    this.b = b;
}

с конструкторами, для этого есть специальный синтаксис:

public void MyObject()
{
    this.a = 5;
}

public void MyObject(int b)
    : this()
{
    this.b = 10;
}
3
ответ дан 27 November 2019 в 16:25
поделиться

Создайте другой метод:

private setDefaultNumbers() {
    x = 5;
    y = 10;
}

Затем вызовите обе версии вашего конструктора этот метод:

public MyObject() {
    setDefaultNumbers();
}

public MyObject(int setZ) {
    setDefaultNumbers();
    z = setZ;
}
5
ответ дан 27 November 2019 в 16:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: