@devilong

Можно ли через один объект обращаться к разным конструкторам С#?

Такой вот вопрос... есть 2 класса. 1 основной второй для инициализации полей в котором находятся 2 конструктора.
class Animal
    {
        public string kindOfAnimal;
        protected int numberOfLegs;
        private string presenceTail;
        public Animal(string aKindOfAnimal, int aNumberOfLegs)
        {
            kindOfAnimal = aKindOfAnimal;
            numberOfLegs = aNumberOfLegs;
            presenceTail = " - ";
        }
        public Animal(string aKindOfAnimal, int aNumberOfLegs, string aColor)
        {
            kindOfAnimal = aKindOfAnimal;
            numberOfLegs = aNumberOfLegs;
            presenceTail = aColor;
        }


В основном классе я создаю объект класса и передаю строки
Animal animal = new Animal(textBox1.Text, Convert.ToInt32(textBox2.Text), textBox3.Text);

но работает он только через 1 конструктор с 3 строкам принимающий .... как сделать что б работало 2 конструктора от 1 объекта?
Например ввел я все 3 строчки сработал один конструктор , набрал только 2 строчки сработал другой конструктор.

И вопрос как сделать деструктор для второго класса?
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Используйте параметры по умолчанию и или цепочку вызовов конструкторов, можно ещё использовать паттерн фабрика что она уже вам конструировала в зависимости от параметров
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Ну самый примитив в лоб это проверить есть ли введённый текст цвета, если нет, то создать объект через конструктор без него.
Но лучше же, эту проверку затащить во второй конструктор, и там уже проверять, если цвет пустой, то - прочерк. А от первого конструктора избавиться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы