Вариантный тип - Большая Энциклопедия Нефти и Газа, статья, страница 1
Мы медленно запрягаем, быстро ездим, и сильно тормозим. Законы Мерфи (еще...)

Вариантный тип

Cтраница 1


Вариантный тип - это тип, содержащий как спецификацию типа, так и действительное значение. Один вариантный тип может содержать строку, другой - число. Такая гибкость достигнута высокой ценой: операции над вариантными типами выполняются значительно медленнее, чем над собственными типами, и, кроме того, вариантные типы используют больше памяти.  [1]

Разработка пользовательских вариантных типов, конечно же, не является столь простой задачей, и я едва ли найду причины, по которым их необходимо использовать вместо объектов или классов. При использовании пользовательских вариантных типов вы получаете преимущество использования оператора, накладывающегося на собственную структуру данных, но теряете возможность проверки в ходе компиляции, получаете замедление выполнения, потерю некоторых характеристик ООП и вынуждены писать весьма сложный программный код.  [2]

Модуль Variant содержит исходный код вариантных типов. Как упоминалось ранее, некоторые из процедур этого модуля перемещены сюда из модуля System. Функции включают общую поддержку преобразования вариантных типов, вариантных массивов, копирования вариантных типов и динамических массивов вариантных типов. Кроме того, класс TCustomVariantType определяет пользовательские типы данных.  [3]

Исключением из этого правила являются функции с вариантными типами данных, которые были удалены из модуля System во избежание нежелательного связывания со специальными библиотеками Windows, даже в программах, не использующих эти возможности. Вариантные функции теперь находятся в модуле Variants, который мы рассмотрим далее.  [4]

Эти комплексные числа определены с использованием классов, но размещаются как вариантные типы, наследуя от класса TCustomVariantType ( определенного в модуле Variants) новый класс, перекрывающий некоторые виртуальные абстрактные функции, и создавая глобальный объект, который заботится о регистрации в системе.  [5]

Это - именно то, что делает среда Delphi при использовании вариантного типа ( см. последующее примечание) для вызова сервера автоматизации.  [6]

Как упоминалось ранее, при вызове метода объекта автоматизации с использованием вариантного типа компилятор Delphi в ходе компиляции может и не знать об этом методе.  [7]

Теперь можно использовать новый набор процедур Typlnfo, включая удобную процедуру GetPropValue, которая возвращает вариантный тип со значением свойства и генерирует исключение, если свойство не существует.  [8]

О модуль ObjAuto содержит код вызова опубликованных методов объекта по имени, с передачей параметров в массиве вариантного типа.  [9]

С помощью этой программы вы можете приблизительно сравнить производительность, достигаемую при вызове метода на основе интерфейса, вариантных типов и на основе интерфейса координации. Анализируя результаты примера, можно отметить, что самыми быстрыми являются интерфейсы, а самыми медленными - вариантные типы.  [10]

Вариантный тип - это тип, содержащий как спецификацию типа, так и действительное значение. Один вариантный тип может содержать строку, другой - число. Такая гибкость достигнута высокой ценой: операции над вариантными типами выполняются значительно медленнее, чем над собственными типами, и, кроме того, вариантные типы используют больше памяти.  [11]

Разработка пользовательских вариантных типов, конечно же, не является столь простой задачей, и я едва ли найду причины, по которым их необходимо использовать вместо объектов или классов. При использовании пользовательских вариантных типов вы получаете преимущество использования оператора, накладывающегося на собственную структуру данных, но теряете возможность проверки в ходе компиляции, получаете замедление выполнения, потерю некоторых характеристик ООП и вынуждены писать весьма сложный программный код.  [12]

Модуль Variants полностью независим от платформы и использует модуль VarUtils, который содержит программный код, зависящий от операционной системы. Для манипулирования данными вариантного типа в Delphi этот модуль использует системные API; в Kylix - настраиваемый программный код, предоставляемый RTL-библиотекой.  [13]

С помощью этой программы вы можете приблизительно сравнить производительность, достигаемую при вызове метода на основе интерфейса, вариантных типов и на основе интерфейса координации. Анализируя результаты примера, можно отметить, что самыми быстрыми являются интерфейсы, а самыми медленными - вариантные типы.  [14]

В языке Delphi вариантным является тип, который может хранить любые типы данных, подстраиваясь под их значения. Вариантный тип данных помимо значений базовых типов ( таких, как Integers, strings, characters и Boolean) может хранить значения интерфейсного типа - IDispatch. Тип вариантных данных проверяется в ходе выполнения; вот почему компилятор может компилировать программный код, даже не имея представления о методах сервера автоматизации.  [15]



Страницы:      1    2