![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Многомерные свойства
Свойство может быть объявлено как многомерное. Многомерное свойство ведет себя как многомерная переменная, для которой могут использоваться такие функции как $Order. Например, свойство abc задано как многомерное: Property abc [ MultiDimensional ]; Следующий пример демонстрирует работу со свойством abc: Set x = $DATA(obj.abc) Set x = $DATA(obj.abc(3)) Set x = $GET(obj.abc(3)) Set x = $ORDER(obj.abc(" hello", 3)) KILL obj.abc где obj – это oref-ссылка на объект. Для работы с многомерными свойствами не используются методы, характерные для классов типов данных. Таким образом, для многомерного свойства с именем Kids не существует методов KidsGet, KidsSet, или KidsLogicalToDisplay. Многомерные свойства не могут отображаться в SQL таблицах. Методы Методы – это операции, ассоциированные с объектом. Метод выполняется внутри Caché процесса. Каждый метод может иметь имя, список формальных параметров, возвращаемое значение и программный код. Имя метода должно быть уникально внутри своего класса. Как правило, методы реализованы в виде функций или процедур на языке Caché Object Script (COS). Параметры методу могут передаваться как по ссылке, так и по значению. Тип возвращаемого значения может быть каким угодно, но, как правило, это тип %Library.Status, который возвращает информацию о статусе завершения метода. Есть методы классов и методы экземпляров. Для задания метода класса используется ключевое слово ClassMethod, для задания метода экземпляра используется ключевое слово Method. Например, следующий синтаксис используется для задания метода класса: ClassMethod < имя метода> (список параметров) [ключевые слова] { код } Такой синтаксис используется для задания метода экземпляра: Method < имя метода> (список параметров) [ключевые слова] { код } Аргументы метода Метод может иметь любое число аргументов. При определении метода задаются аргументы со своими типами данных. Можно задать значение по умолчанию для некоторых аргументов, так же как и аргументы, передаваемые по ссылке (по умолчанию аргументы передаются по значению). Например, метод Calculate имеет три аргумента: Method Calculate(count As %Integer, name, state As %String = " CA") { //... } где count и state объявлены как %Integer и %String, соответственно. По умолчанию, типом данных необъявленного аргумента является тип %String, в нашем случае name имеет тип %String. Т.е. можно неявно задавать типы аргументов.
|