Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Определение конструкторов типов

Определение конструкторов типов

Система CTS (общая система типов) поддерживает конструкторы как уровня экземпляра, так и уровня класса (статические конструкторы). В терминах CIL для конструкторов уровня экземпляра используется лексема .ctor, а для статических конструкторов – лексема .cctor (конструктор класса). Обе эти лексемы CIL должны сопровождаться атрибутами rtspecialname (специальное имя возвращаемого типа) и specialname. Эти атрибуты используются для идентификации специальных лексем CIL, позволяющих уникальное толкование в каждом языке .NET. Например, в C# конструкторы не определяют возвращаемый тип, однако в терминах CIL возвращаемым значением конструктора на самом деле будет void.

.class public MyBaseClass {
 .field private string stringField
 .field private int32 intField
 .method public hidebysig specialname rtspecialname instance void .ctor(string s, int32 i) cil managed {
  // Задача: добавить необходимый программный код.
 }
}

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

Оглавление книги


Генерация: 1.216. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз