Public class Program

Public class SampleClass

Class Base

{ public int x = InitX();

public Base(int x)

{ this.x = x; // устранение неоднозначности между

// параметром и переменной экземпляра

}

}

class Derived: Base

{ public Derived(int a): base(a) // вызов конструктора

// базового класса

{

}

}

(MSDN_ООП_VB+C#_2010)

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

Определение конструктора для класса:

{ public SampleClass()

{ // Код конструктора

}

}

Деструкторы используются для уничтожения экземпляров классов. В платформе.NET Framework сборщик мусора автоматически управляет распределением и освобождением памяти для управляемых объектов приложения. Однако для очистки неуправляемых ресурсов, создаваемых приложением, могут потребоваться деструкторы. На один класс допускается только один деструктор.

Инициализация объектов с помощью инициализатора объектов.

(https://msdn.microsoft.com/ru-ru/library/bb397680.aspx)

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

В следующем примере показано, как использовать инициализаторы объектов с именованными объектами. Компилятор рассматривает инициализаторы объекта сначала получить доступ к конструктору экземпляра по умолчанию, а затем обработать инициализации членов. Таким образом, при объявлении конструктора по умолчанию в классе как private, обработка инициализаторов объектов, требующих открытый доступ, приведет к ошибке.

В следующем примере показано, как инициализировать новый тип StudentName с помощью инициализаторов объектов.

{ public static void Main()

{ // Объявление StudentName с помощью конструктора с двумя параметрами

StudentName student1 = new StudentName("Craig", "Playstead");

// Объявление StudentName с помощью конструктора при

// использовании инициализатора объекта и задания 2-х параметров.

// Заданный по умолчанию конструктор вызван при объявлении,

// а не используя конструктор с 2-мя параметрами.

StudentName student2 = new StudentName

{ FirstName = "Craig",

LastName = "Playstead",

};

// Declare a StudentName by using an object initializer and

// sending an argument for only the ID property. No

// corresponding constructor is necessary. Only the default

// constructor is used to process object initializers.

StudentName student3 = new StudentName

{ ID = 183

};

// Declare a StudentName by using an object initializer and

// sending arguments for all three properties. No corresponding

// constructor is defined in the class.

StudentName student4 = new StudentName

{ FirstName = "Craig",

LastName = "Playstead",

ID = 116

};

System.Console.WriteLine(student1.ToString());

System.Console.WriteLine(student2.ToString());

System.Console.WriteLine(student3.ToString());

System.Console.WriteLine(student4.ToString());

}

}

// Вывод:

// Craig 0

// Craig 0

// 183

// Craig 116


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: