Определение типа во время выполнения программы: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) (Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...) |
Mikst (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
Для определения точного типа во время выполнения программы используется | |||
метод Object.GetType, возвращающий тип System.Type, являющийся | |||
характеристикой типа, к которому принадлежит x. | |||
Для сравнения типа переменной x с объявленным типом B необходимо сравнить | |||
x.GetType с характеристикой типа B, возвращаемой операцией typeof: typeof(B) | |||
<source lang="Delphi">type | |||
A = class | |||
end; | |||
B = class(A) | |||
end; | |||
var x: A; | |||
begin | |||
x := new B; | |||
writeln(x.GetType.Name); | |||
writeln(x.GetType = typeof(B)); | |||
end.</source> | |||
== Ссылки == | == Ссылки == | ||
*[[Особенности языка: продвинутый уровень]] | *[[Особенности языка: продвинутый уровень]] | ||
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] | *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] |
Текущая версия от 21:56, 15 января 2010
Для определения точного типа во время выполнения программы используется метод Object.GetType, возвращающий тип System.Type, являющийся характеристикой типа, к которому принадлежит x. Для сравнения типа переменной x с объявленным типом B необходимо сравнить x.GetType с характеристикой типа B, возвращаемой операцией typeof: typeof(B)
type
A = class
end;
B = class(A)
end;
var x: A;
begin
x := new B;
writeln(x.GetType.Name);
writeln(x.GetType = typeof(B));
end.