Определение типа во время выполнения программы: различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
(Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...)
 
Нет описания правки
 
Строка 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.

Ссылки