Задать вопрос

В чем смысл передачи аргумента в конструктор класса?

Вот рабочие примеры:

Передаем аргумент в конструктор класса
class MyClass
{
public MyClass(int number)
{
Console.WriteLine(number);
}
}

Передаем аргумент в метод
static void Main()
{
MyClass instance1 = new MyClass(1);
MyClass instance2 = new MyClass(2);
Console.ReadKey();
}


То же самое, но без конструктора
class MyClass
{
public void MyMethod(int number)
{
Console.WriteLine(number);
}
}

static void Main()
{
MyClass instance1 = new MyClass();
MyClass instance2 = new MyClass();
instance1.MyMethod(1);
instance1.MyMethod(2);
Console.ReadKey();
}


Зачем и когда нужно передавать аргумент в конструктор класса? Ведь всё тоже самое можно сделать с помощью обычного метода. (Конструктор тоже метод, но особенный - вызываемый автоматически.)
Да, с методом на 1 шаг больше. Но на мой взгляд, такой код выглядит более правильным.

Я достаточно редко вижу классы в который передают аргументы. Обычно конструктор в классе выполняет какие либо операции, которые должны быть всегда выполнены при создании экземпляра класса.
  • Вопрос задан
  • 467 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
1. А зачем вам вообще инстанс класса, если можете просто передавать в статический метод нужные аргументы и получать нужный результат?
2. Аргументы в конструктор передаются чтобы провести инициализацию класса какими-то определенными обязательными данными без которых класс не сможет полноценно работать
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
В вашем примере вообще нет ни одной причины использовать конструкторы.
Конструкторы нужны для инициализации объекта, а не выполнения действий.
Например в случае класса System.Collections.Generic.List мы можем передать в конструкторе начальное значение списка и его начальную вместительность.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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