Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 61
Эндрю Троелсен
using System;
class HelloClass {
public static int Main(string[] args) {
// Ошибка! Используется неинициализированная локальная
// переменная. Следует использовать 'new'.
HelloClass c1;
с1.SomeMethod();
…
}
}
Чтобы использовать правильные процедуры для создания объектов, внесите следующие изменения.
using System;
class HelloClass {
public static int Main(string[] args) {
// Можно объявить и создать объект в одной строке…
HelloClass с1 = new HelloClass();
//…или указать объявление и создание в разных строках.
HelloClass c2;
с2 = new HelloClass();
…
}
}
Ключевое слово new отвечает за вычисление числа байтов, необходимых для заданного объекта, и выделение достаточного объема управляемой динамической памяти (managed heap). В данном случае вы размещаете два объекта типа класса HelloClass. Следует понимать, что объектные переменные C# на самом деле являются
Роль конструкторов
До сих пор объекты HelloClass строились с помощью
Обычно кроме конструктора, заданного по умолчанию, классы предлагают и другие конструкторы. Тем самым вы обеспечиваете возможность инициализации состояния объекта во время его создания, Подобно Java и C++, конструкторы в C# имеют имя, соответствующее имени класса, который они конструируют, и они никогда не возвращают значения (даже значения void). Ниже снова рассматривается тип HelloClass, но с пользовательским конструктором, переопределенным заданным по умолчанию конструктором, и элементом открытых строковых данных.
// HelloClass c конструкторами.
class HelloClass {
// Элемент открытых данных.
public string userMessage;
// Конструктор, заданный по умолчанию.