C#Сложные типы

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

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

Структура имеет тип по значению. Для инициализации структуры используется оператор new. Структура инициализируется (0) сразу после своего объявления. Компилятор не позволяет копировать одну структуру в другую до ее инициализации.

Читать далее...

C#Типы данных

Типы по значению и типы по ссылке. Тип struct в C# является типом по значению.

C# имеет 15 предопределенных типов (13 по значению и 2 (string и object) по ссылке).

В C# тип object является исходным типом-предком, от которого берут начало все внутренние и все определенные пользователем типы. Ссылку object можно использовать для привязки к любому объекту любого частного подтипа.

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

Читать далее...