Составители:
Рубрика:
3.5.2.3. Поля
Поля объявляются внутри объявлений типов. Объявление поля осу-
ществляется с помощью директивы «.field» и состоит из трех частей:
1. последовательность атрибутов поля;
2. тип;
3. имя поля.
Последовательность атрибутов следует непосредственно после клю-
чевого слова «.field». В таблице 3.52 приведен набор наиболее часто ис-
пользуемых атрибутов.
Таблица 3.52. Атрибуты полей
После атрибутов следует тип поля и идентификатор, задающий имя
поля.
Рассмотрим несколько примеров:
1. Объявление поля x типа массив.
.field private int32[] x
2. Объявление поля table типа Hashtable.
.field public class
[mscorlib]System.Collections.Hashtable table
3.5.2.4. Методы
Методы объявляются внутри объявлений типов. Объявление метода
осуществляется с помощью директивы «.method» и состоит из пяти частей:
1. последовательность атрибутов метода;
2. тип возвращаемого значения;
3. имя метода;
4. список параметров метода;
5. тело метода.
Последовательность атрибутов следует непосредственно после клю-
чевого слова «.method». В таблице 3.53 приведен набор наиболее часто ис-
пользуемых атрибутов.
После атрибутов следует тип возвращаемого значения и идентифика-
тор, задающий имя метода. Если метод не возвращает значения, в качест-
Common Intermediate Language
127
Последовательность атрибутов следует непосредственно после клю-
чевого слова «.class». В таблице 3.51 приведен набор наиболее часто ис-
пользуемых атрибутов.
Таблица 3.51. Атрибуты типов
После атрибутов следует идентификатор, задающий имя объявляе-
мого типа.
Если объявляемый тип наследует от какого-нибудь другого типа
(базового класса), отличного от System.Object, то необходимо указать имя
базового класса после ключевого слова «extends». При этом, если в качест-
ве базового класса выбран System.ValueType, то объявляемый тип будет ти-
пом-значением.
Если объявляемый тип реализует методы каких-либо интерфейсов,
то должен быть приведен список этих интерфейсов после ключевого сло-
ва «implements».
Рассмотрим несколько примеров:
1. Объявление экспортируемого абстрактного класса, реализую-
щего интерфейс IEnumerable.
.class public abstract MyAbstractClass
extends [mscorlib]System.Object
implements [mscorlib]System.Collections.IEnumerable
{ }
2. Объявление неэкспортируемого интерфейса.
.class private interface MyInterface { }
3. Объявление экспортируемого типа-значения.
.class public sealed MyValueType
extends [mscorlib]System.ValueType
{ }
Обратите внимание, что перед именами библиотечных классов и ин-
терфейсов в квадратных скобках указывается имя сборки, в которой они
содержатся.
126
CIL и системное программирование в Microsoft .NET
Атрибут Описание
abstract Тип является абстрактным классом
interface Тип является интерфейсом
private Тип не экспортируется из сборки
public Тип экспортируется из сборки
sealed Тип не может являться базовым классом для другого
типа (от него нельзя наследовать)
serializable Экземпляры типа могут быть сериализованы
Атрибут Описание
assembly Поле видимо внутри сборки
family Поле видимо для наследников типа
public Поле видимо для всех
private Поле видимо только внутри типа
static Поле является статическим
126 CIL и системное программирование в Microsoft .NET Common Intermediate Language 127 Последовательность атрибутов следует непосредственно после клю- 3.5.2.3. Поля чевого слова «.class». В таблице 3.51 приведен набор наиболее часто ис- Поля объявляются внутри объявлений типов. Объявление поля осу- пользуемых атрибутов. ществляется с помощью директивы «.field» и состоит из трех частей: 1. последовательность атрибутов поля; Таблица 3.51. Атрибуты типов 2. тип; 3. имя поля. Атрибут Описание Последовательность атрибутов следует непосредственно после клю- abstract Тип является абстрактным классом чевого слова «.field». В таблице 3.52 приведен набор наиболее часто ис- interface Тип является интерфейсом пользуемых атрибутов. private Тип не экспортируется из сборки public Тип экспортируется из сборки Таблица 3.52. Атрибуты полей sealed Тип не может являться базовым классом для другого Атрибут Описание типа (от него нельзя наследовать) assembly Поле видимо внутри сборки serializable Экземпляры типа могут быть сериализованы family Поле видимо для наследников типа public Поле видимо для всех После атрибутов следует идентификатор, задающий имя объявляе- private Поле видимо только внутри типа мого типа. static Поле является статическим Если объявляемый тип наследует от какого-нибудь другого типа (базового класса), отличного от System.Object, то необходимо указать имя базового класса после ключевого слова «extends». При этом, если в качест- После атрибутов следует тип поля и идентификатор, задающий имя ве базового класса выбран System.ValueType, то объявляемый тип будет ти- поля. пом-значением. Рассмотрим несколько примеров: Если объявляемый тип реализует методы каких-либо интерфейсов, 1. Объявление поля x типа массив. то должен быть приведен список этих интерфейсов после ключевого сло- .field private int32[] x ва «implements». 2. Объявление поля table типа Hashtable. Рассмотрим несколько примеров: .field public class 1. Объявление экспортируемого абстрактного класса, реализую- [mscorlib]System.Collections.Hashtable table щего интерфейс IEnumerable. .class public abstract MyAbstractClass 3.5.2.4. Методы extends [mscorlib]System.Object Методы объявляются внутри объявлений типов. Объявление метода implements [mscorlib]System.Collections.IEnumerable осуществляется с помощью директивы «.method» и состоит из пяти частей: { } 1. последовательность атрибутов метода; 2. Объявление неэкспортируемого интерфейса. 2. тип возвращаемого значения; .class private interface MyInterface { } 3. имя метода; 3. Объявление экспортируемого типа-значения. 4. список параметров метода; .class public sealed MyValueType 5. тело метода. extends [mscorlib]System.ValueType Последовательность атрибутов следует непосредственно после клю- { } чевого слова «.method». В таблице 3.53 приведен набор наиболее часто ис- Обратите внимание, что перед именами библиотечных классов и ин- пользуемых атрибутов. терфейсов в квадратных скобках указывается имя сборки, в которой они После атрибутов следует тип возвращаемого значения и идентифика- содержатся. тор, задающий имя метода. Если метод не возвращает значения, в качест-
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »