Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 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, чтобы связать синтаксис свойства со "специально именованными" методами.
Замечание. Указанные выше определения свойств компилироваться не будут, поскольку пока что не реализована сама логика чтения и модификации данных.
- 9.7.1. Определение подкласса
- Определение членов класса
- RNA-свойства против ID-свойств
- Определение имен рабочей станции, пользователя и домена
- 9.8.1. Определение неперечислимых свойств
- Определение платформы Java для портативных устройств
- 8.4.1. Определение собственных свойств функций
- 3.5.1. Определение и задание свойств детали
- Определение выбираемых по умолчанию свойств и событий
- Определение пользовательских свойств
- Переопределение свойства Actionlnvoker
- 9.8. Классы в ECMAScript 5