Лекция 20 (1160818), страница 3
Текст из файла (страница 3)
Иногда полезно просто узнать, принадлежит ли объект данному типу. В языке Delphi есть ключевое слово is.
e is T
В языке Java вместо ключевого слова is ключевое слово instanceof. Смысл тот же, что и динамической проверки типа.
В языке Delphi есть еще оператор присоединения, который ведет себя точно также как групповой страж типа в языке Оберон. (В Delphi, как и в Паскале, в отличие от всех других языков, о которых мы говорили, не различаются маленькие и большие буквы)
with t as T1 do
begin
…
end
Происходит динамическая проверка типа, и, если она не проходит, выдается сообщение об ошибке. Нам не нужно писать все время T1(t). Можно писать нечто типа
e:= t as T1; - аналог dinamic_cast из С++
e:= T1(t); - аналог static_cast из С++
Т.е. на Delphi тоже есть возможность программировать чуть более эффективно.
Delphi, Java, C# обладают достаточно мощным дополнительным средством идентификации типа, поскольку у них есть базисный класс (TObject или Object), который содержит в себе много методов выдачи информации о типе. Например, у типа Object обязательно есть метод, который выдает название типа, и может быть метод, который позволяет более гибко динамически его идентифицировать.