Название может показаться сбивающим с толку. Я хочу вызвать конструктор того же класса и конструктор базового класса внутри конструктора. Может быть, моя первая попытка решить это может объяснить мой вопрос:
public MyClass(MyClass obj) : base(obj),this() {}
Но эта нотация не работает. Есть ли какое-нибудь решение, чтобы решить эту проблему?
Нет, вы не можете сделать это по следующей причине:
Когда конструктор вызывает конструктор своей базы, последний вызов является ЧАСТЬЮ рассматриваемого конструктора. Таким образом, вы не можете вызвать другой конструктор того же класса И конструктор базового класса, потому что первый вызов уже содержит вызов базового конструктора - вы не можете инициализировать вашу базу дважды
На самом деле, вы МОЖЕТЕ сделать это. Вы можете запустить конструктор родительского класса из экземпляра дочернего класса, вот как вы это делаете:
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 будет отправлено Человеку конструктора через: основание (возраст)
Надеюсь, это поможет, ура.