Редактирование: Сравнение Языков Программирования
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 166 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 1633: | Строка 1633: | ||
В C# для определения типа объекта во время исполнения используется метод GetType, а также ключевые слова is и as, которые являются аналогами для typeid и dynamic_cast в C++ соответственно. | В C# для определения типа объекта во время исполнения используется метод GetType, а также ключевые слова is и as, которые являются аналогами для typeid и dynamic_cast в C++ соответственно. | ||
- | |||
- | === Оберон-2 === | ||
- | |||
- | В Оберон-2 есть два средства для идентификации типа: операция IS и охрана типа. | ||
- | |||
- | ==== Проверка типа ==== | ||
- | v IS T означает "динамический тип v есть T (или расширение T)" и называется проверкой типа. | ||
- | Проверка типа применима, если | ||
- | |||
- | 1. v - параметр-переменная типа запись, или v - указатель, и если | ||
- | |||
- | 2. T - расширение статического типа v | ||
- | |||
- | ==== Охрана типа ==== | ||
- | Операторы with выполняют последовательность операторов в зависимости от | ||
- | результата проверки типа и применяют охрану типа к каждому вхождению | ||
- | проверяемой переменной внутри этой последовательности операторов. | ||
- | Если v - параметр-переменная типа запись или переменная-указатель, и если ее статический тип T0, оператор | ||
- | |||
- | WITH v: T1 DO S1 | v: T2 DO S2 ELSE S3 END | ||
- | |||
- | имеет следующий смысл: если динамический тип v - T1, то выполняется | ||
- | последовательность операторов S1 в которой v воспринимается так, будто она | ||
- | имеет статический тип T1; иначе, если динамический тип v - T2, выполняется | ||
- | S2, где v воспринимается как имеющая статический тип T2; иначе выполняется | ||
- | S3. T1 и T2 должны быть расширениями T0. Если ни одна проверка типа не | ||
- | удовлетворена, а ELSE отсутствует, программа прерывается. | ||
=== Java === | === Java === |