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

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

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

Свойства и методы также имеют специальные представления в CIL. Чтобы в нашем примере обеспечить в MyBaseClass поддержку открытого свойства TheString, можно использовать следующий CIL-код (заметьте, что здесь опять используется атрибут specialname).

.class public MyBaseClass {
 …
 .method public hidebysig specialname instance string get_TheString() cil managed {
  // Задача: добавить необходимый программный код…
 }
 .method public hidebysig specialname instance void set_TheString(string 'value') cil managed {
  // Задача: добавить необходимый программный ход.…
 }
 .property instance string TheString() {
  .get instance string MyNamespace.MyBaseClass::get_TheString()
  .set instance void MyNamespace.MyBaseClass::set_TheString(string)
 }
}

Напомним, что в терминах CIL свойства будут представлены парой методов, имеющих префиксы get_ и set_. Директива .property использует соответствующие директивы .get и .set, чтобы связать синтаксис свойства со "специально именованными" методами.

Замечание. Указанные выше определения свойств компилироваться не будут, поскольку пока что не реализована сама логика чтения и модификации данных.

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


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