2014-04-21 4 views
0

Должен ли я всегда использовать конструктор в C#?Должен ли я всегда использовать конструктор в C#

Я работаю над некоторыми примерами. Они используют конструктор. Я не уверен, понимаю ли я это, потому что чувствую, что мне не нужно использовать конструктор.

+0

Я думаю, вы имеете в виду параметризованные конструкторы? Ваш вопрос совершенно неясен. Вы не «всегда» должны использовать что-либо в частности. Есть места, где определенные вещи имеют смысл, в других местах, где нет. Какой у Вас вопрос? разместите соответствующий код. –

ответ

2

Если конструктор не определен, для вас автоматически создается конструктор по умолчанию. Сгенерированный код такой же, как и запись:

public MyClass() : base() 
{ 
} 

Если вам нужны параметры или инициализация членов, тогда вам нужно будет написать свой собственный. Вам также нужно написать одно, если вы наследуете базовый класс с параметрами. Поскольку вы просто узнаете о конструкторах, вам не нужно об этом беспокоиться, но это то, о чем нужно помнить.

Обратите внимание, что этот конструктор удаляется, если вы определяете любой конструктор (даже параметризованный), поэтому вам нужно явно определить его, если вы все еще хотите без параметров.

Вот документация конструктора по умолчанию: MSDN

0

Не быть грубым, но вы должны дать ему попробовать.

классу не нужен конструктор (или, по крайней мере, будет генерировать один вызывая соответствующий конструктор базовых классов, если один), если:

  • Вы хотите сделать некоторую инициализацию переменных;
  • Вы хотите передать параметры;
  • Вам нужно, поскольку базовый класс не имеет конструктора без параметров.
+0

Уточнение: класс будет _allways_ иметь конструктор. Если вы не будете писать одно явно, то он будет использовать конструктор по умолчанию. И вы не конструкторы _derive_. – gunr2171

+0

@ gunr2171: Я не думаю, что это полностью верно. Он сводится к тому, чтобы получить конструктор из базовых классов. Он не генерирует его для вас. –

+0

Я собираюсь удалить свой нисходящий поток из-за преимущества сомнения. Однако я не уверен, что класс «получит» конструктор (по умолчанию) из базового класса. Зачем идти до «объекта»?Почему бы не остановиться на более высоком уровне? Кроме того, конструкторы с теми же аргументами не должны совпадать. – gunr2171

0

Конструктор по умолчанию создается для каждого класса. Однако вы можете создать свой собственный конструктор с параметрами или без них.

Вы должны использовать конструкторы, когда ваш класс, например, должен управлять объектом, который он требует.

Например:

public class Car 
{ 
    string _model = ""; 
    public Car(string CarModel) 
    { 
     this._model = CarModel; 
    } 
} 
0

Целью конструктора является то, что если у вас есть какой-то код, выполняемый при создании объекта, записать его в конструктор. EDIT Использование конструктора в C# не обязательно. Для классов, которые вы создаете с помощью мастера, конструктор, который вы увидите, создается по умолчанию. Но для класса, который вы создаете/пишете, вы можете создать/написать конструктор.

+2

Это не отвечает на вопрос. – gunr2171

+1

Вопрос заключается в том, чтобы включить определение конструктора в код, а не то, что нужно вставить в это определение. – BradleyDotNET

+0

Я сказал цель конструктора простыми словами. Что не так? @ gunr2171 – Nanosoft

Смежные вопросы