Составители:
Рубрика:
Sort() для сортировки этого массива. Для доступа к отсортированному
массиву используются свойства Array и Count:
Public MustInherit Class SortedArray
Protected Arr() As Integer
Protected MustOverride Sub Sort()
Public Sub New(ByVal A() As Integer)
Dim i As Integer
Arr = New Integer(A.Length – 1) {}
Структура программных компонентов
79
Видимость типа (т.е. экспортируется он из сборки или нет) определя-
ется флагом видимости и хранится в поле Flags соответствующей этому
типу записи в таблице метаданных TypeDef. В таблице 2.3 приведен набор
флагов видимости для типов.
Доступ к методам, полям и свойствам типа определяется значением
флага доступа. Описание допустимых значений приводится в таблице 2.4.
2.3.2.2. Пример межъязыкового взаимодействия
Рассмотрим учебный пример, который представляет собой компо-
нентную систему, написанную сразу на четырех языках. Диаграмма клас-
сов примера дана на рисунке 2.13.
Абстрактный класс SortedArray реализован на Visual Basic .NET.
В этом классе определено поле Arr, представляющее собой массив целых
чисел. Конструктор класса SortedArray копирует в это поле массив, пере-
даваемый ему в качестве параметра, а затем вызывает абстрактный метод
78
CIL и системное программирование в Microsoft .NET
Флаг Значение Описание
NotPublic 0x00000000 Тип не экспортируется из сборки
Public 0x00000001 Тип экспортируется из сборки
NestedPublic 0x00000002 Вложенный тип доступен везде
NestedPrivate 0x00000003 Вложенный тип доступен только
внутри того типа, в который он
вложен
NestedFamily 0x00000004 Вложенный тип доступен на-
следникам того типа, в который
он вложен
NestedAssembly 0x00000005 Вложенный тип доступен везде
внутри сборки
NestedFamAndAssem 0x00000006 Вложенный тип доступен на-
следникам того типа, в который
он вложен, но только внутри
сборки
NestedFamOrAssem 0x00000007 Вложенный тип доступен везде
внутри сборки, и, кроме того,
наследникам того типа, в кото-
рый он вложен
Таблица 2.3. Флаги видимости для типов
Таблица 2.4. Флаги доступа для членов типа
Флаг Значение Описание
CompilerControlled 0x00000000 Доступ контролируется компи-
лятором
Private 0x00000001 Доступен только внутри типа
FamAndAssem 0x00000002 Доступен наследникам типа,
объявленным внутри сборки
Assembly 0x00000003 Доступен только внутри сборки
Family 0x00000004 Доступен наследникам типа
FamOrAssem 0x00000005 Доступен внутри сборки, а также
наследникам типа
Public 0x00000006 Доступен везде
Рис. 2.13. Диаграмма классов учебного примера
SortedArray
#Arr
+.ctor()
#Sort
+get_Array():Integer
+get_Count():Integer
BubleSortedArray
+.ctor()
#Sort()
InsertSortedArray
+.ctor()
#Sort()
Main
+main()
78 CIL и системное программирование в Microsoft .NET Структура программных компонентов 79 Видимость типа (т.е. экспортируется он из сборки или нет) определя- Таблица 2.4. Флаги доступа для членов типа ется флагом видимости и хранится в поле Flags соответствующей этому типу записи в таблице метаданных TypeDef. В таблице 2.3 приведен набор Флаг Значение Описание флагов видимости для типов. CompilerControlled 0x00000000 Доступ контролируется компи- Таблица 2.3. Флаги видимости для типов лятором Private 0x00000001 Доступен только внутри типа Флаг Значение Описание FamAndAssem 0x00000002 Доступен наследникам типа, NotPublic 0x00000000 Тип не экспортируется из сборки объявленным внутри сборки Public 0x00000001 Тип экспортируется из сборки Assembly 0x00000003 Доступен только внутри сборки NestedPublic 0x00000002 Вложенный тип доступен везде Family 0x00000004 Доступен наследникам типа NestedPrivate 0x00000003 Вложенный тип доступен только FamOrAssem 0x00000005 Доступен внутри сборки, а также внутри того типа, в который он наследникам типа вложен Public 0x00000006 Доступен везде NestedFamily 0x00000004 Вложенный тип доступен на- следникам того типа, в который он вложен SortedArray #Arr NestedAssembly 0x00000005 Вложенный тип доступен везде +.ctor() внутри сборки #Sort NestedFamAndAssem 0x00000006 Вложенный тип доступен на- Main +get_Array():Integer следникам того типа, в который +main() +get_Count():Integer он вложен, но только внутри сборки NestedFamOrAssem 0x00000007 Вложенный тип доступен везде BubleSortedArray InsertSortedArray внутри сборки, и, кроме того, +.ctor() +.ctor() наследникам того типа, в кото- #Sort() #Sort() рый он вложен Доступ к методам, полям и свойствам типа определяется значением Рис. 2.13. Диаграмма классов учебного примера флага доступа. Описание допустимых значений приводится в таблице 2.4. Sort() для сортировки этого массива. Для доступа к отсортированному 2.3.2.2. Пример межъязыкового взаимодействия массиву используются свойства Array и Count: Рассмотрим учебный пример, который представляет собой компо- нентную систему, написанную сразу на четырех языках. Диаграмма клас- Public MustInherit Class SortedArray сов примера дана на рисунке 2.13. Protected Arr() As Integer Абстрактный класс SortedArray реализован на Visual Basic .NET. Protected MustOverride Sub Sort() В этом классе определено поле Arr, представляющее собой массив целых Public Sub New(ByVal A() As Integer) чисел. Конструктор класса SortedArray копирует в это поле массив, пере- Dim i As Integer даваемый ему в качестве параметра, а затем вызывает абстрактный метод Arr = New Integer(A.Length – 1) {}
Страницы
- « первая
- ‹ предыдущая
- …
- 44
- 45
- 46
- 47
- 48
- …
- следующая ›
- последняя »