Вызов конструктора базы и другого конструктора в конструкторе

Название может показаться сбивающим с толку. Я хочу вызвать конструктор того же класса и конструктор базового класса внутри конструктора. Может быть, моя первая попытка решить это может объяснить мой вопрос:

public MyClass(MyClass obj) : base(obj),this() {}

Но эта нотация не работает. Есть ли какое-нибудь решение, чтобы решить эту проблему?

18
задан Kai 16 June 2011 в 07:10
поделиться

2 ответа

Нет, вы не можете сделать это по следующей причине:

Когда конструктор вызывает конструктор своей базы, последний вызов является ЧАСТЬЮ рассматриваемого конструктора. Таким образом, вы не можете вызвать другой конструктор того же класса И конструктор базового класса, потому что первый вызов уже содержит вызов базового конструктора - вы не можете инициализировать вашу базу дважды

15
ответ дан 30 November 2019 в 08:25
поделиться

На самом деле, вы МОЖЕТЕ сделать это. Вы можете запустить конструктор родительского класса из экземпляра дочернего класса, вот как вы это делаете:

public class Person
{
    public Person(int age) {
        this.Age = age; 
    } 
    public int Age;
}

public class students :Person
{
    public students(string name, int age) :base(age ) 
    { 
        this.studentName = name;
        this.Age = age;
    }

    public string studentName;
}

Теперь, допустим, вы создаете объект из студентов class, Итак, вы сделаете это:

Students std = new Students («Джек», 23);

Это отправит «Джек» конструктору класса студентов, и 23 будет отправлено Человеку конструктора через: основание (возраст)

Надеюсь, это поможет, ура.

-1
ответ дан 30 November 2019 в 08:25
поделиться
Другие вопросы по тегам:

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