Главная Новости

Аналоги лего

Опубликовано: 07.05.2021

аналоги лего

Использование конструкторов (Руководство по программированию на C #)

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

В приведенном ниже примере класс с именем Taxi определяется с помощью простого конструктора. Затем этот класс редактируется с помощью оператора new. Конструктор вызывается оператором, как только Taxi new выделяется память для нового объекта.

Такси общественного класса { public bool IsInitialized; общественное такси () { IsInitialized = true; } } класс TestTaxi { статическая пустота Main () { Такси t = новое такси (); Console.WriteLine (t.IsInitialized); } }

Конструктор, не принимающий параметров, называется конструктором без параметров . Конструкторы без параметров вызываются всякий раз, когда объект вызывается с оператором, а аргументы new не передаются для new. Для получения дополнительной информации см. Конструкторы экземпляров.

Пока класс не является статическим классами без У конструкторов есть общедоступный конструктор без параметров компилятором C #, позволяющий создавать экземпляр класса. Для получения дополнительной информации см. Статические классы и Статические члены класса. Classes-and-static-class-members "> и статические члены класса).

Вы можете предотвратить создание класса, создав частные конструкторы следующим образом:

класс NLog { // Частный конструктор: частный NLog () {} публичный статический двойной e = Math.E; //2.71828... }

Для получения дополнительной информации см. Частные конструкторы.

Конструкторы типов похожи на конструкторы классов, но не они могут содержать явный конструктор без параметров, поскольку один из них автоматически предоставляется компилятором с помощью структур. Этот конструктор инициализирует каждое поле в struct values ​​ по умолчанию. Однако этот конструктор без параметров вызывается только тогда, когда struct on вызывается с экземпляром new. Например, в этом коде используется конструктор без параметров для, поэтому вы можете быть уверены, что Int32 целое число инициализируется следующим образом:

int i = новый int (); Console.WriteLine (i);

Однако следующий код вызывает ошибку компилятора, поскольку он не использует функцию и пытается использовать объект, который new не был инициализирован:

Опубликовано: 07.05.2021 | Исправлено: 07.05.2021



Майли Катанкина
06.07.2021 в 11:49
Оригинал: Kasia С объекта: Бася что убеждает нас в том, что объект содержит адрес своей «частной» копии строки, отправленной конструктору. Мы изменили оригинал этой строки в строке ➌ с Basia на Kasia, но имя объекта указывает на эту «частную» копию, которая не изменилась.

Здесь мы имеем дело с ситуацией, когда объект физически не содержит полную информацию о человеке, которого он представляет (в данном случае он не содержит имени этого человека), а только адрес области памяти в куче. где эта информация была сохранена. Таким образом, сам объект невелик: он содержит только целое число (член age ) и указатель типа char * (член name ). Соответствующая информация (массив символов, содержащий имя) размещается вне объекта в куче и занимает ровно столько места, сколько необходимо.


Все комментарии