У меня возникли проблемы, обертывая мою голову вокруг этого. У меня есть 2 конструктора. Первый имеет 2 аргумента:Как вызвать конструктор с двумя аргументами из конструктора без аргументов?
public Instrument(string name, string category)
{
this.Name = name;
this.Category = category;
}
Тогда у меня есть по умолчанию (без аргументов) конструктора с константами для дефолтов:
public Instrument()
{
this.Name = DefaultName;
this.Category = DefaultCategory;
}
Я тоже должен вызвать конструктор 2 параметра из конструктора не аргумент , Как мне это сделать? Я также задаюсь вопросом, почему это даже необходимо. Если вы вызываете параметр 2 по умолчанию, как бы вы когда-либо передавали значения по умолчанию в приложение? Поэтому, я думаю, мой главный вопрос: как я могу назвать конструктор параметров 2 из конструктора по умолчанию?
Что касается передачи значений по умолчанию в конструктор по умолчанию: цель обычно заключается в упрощении использования класса путем предоставления значений по умолчанию через константу, встроенную автором класса/библиотеки. Таким образом, клиент, пытающийся использовать настройки по умолчанию, просто вызовет конструктор без аргументов, что наследует предполагаемое преимущество того, что он не должен предоставлять 2 аргумента, за исключением случаев, когда ему или ей необходимо переопределить значения по умолчанию. – condiosluzverde
Итак, в приведенной выше части «this» вызывает конструктор 2 аргументов? Но это только для того, чтобы передать значения по умолчанию? Возможно, я уже думал об этом. Моя голова говорит, что если вы вызываете конструктор аргументов 2, вы получите два аргумента, а не значения по умолчанию. – ScottT
Да, это ключевое слово относится к текущему классу, поэтому 'this (arg1, arg2)' вызывает конструктор, передавая значения по умолчанию. он в основном такой же, как если бы пользователь вызывал конструктор аргументов 2, передавая информацию по умолчанию, просто пользователю не нужно, если они хотят получить информацию по умолчанию – Shadow