На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Object Pascal / Как заставить Delphi выполнять еще более строгую проверка типов? Напрмер - я создаю пользовательский тип, унаследованный от double и могу передавать его любым функциям, принимающим параметр типа double. Как заставить компилятор проводить более строгую проверку типов и выдавать предупреждение в таких случаях? Сделать домашней страницей Добавить в избранное Написать писмо

Как заставить Delphi выполнять еще более строгую проверка типов? Напрмер - я создаю пользовательский тип, унаследованный от double и могу передавать его любым функциям, принимающим параметр типа double. Как заставить компилятор проводить более строгую проверку типов и выдавать предупреждение в таких случаях?


Пример:

type TStrongType = type Double;
type TWeakType = Double;

procedure AddWeakType(var d : TWeakType);
begin
   d := d + 1;
end;

procedure AddStrongType(var d : TStrongType);
begin
   d := d + 1;
end;

procedure AddDoubleType(var d : Double);
begin
   d := d + 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   d : Double;
   s : TStrongType;
   w : TWeakType;
begin
   AddDoubleType(d); {compiles fine}
   AddDoubleType(w); {compiles fine}
   AddDoubleType(s); {<- compile error}
   AddDoubleType(double(s)); {compiles fine}
   AddWeakType(d); {compiles fine}
   AddWeakType(w); {compiles fine}
   AddWeakType(s); {<- compile error}
   AddWeakType(TWeakType(s)); {compiles fine}
   AddStrongType(d); {<- compile error}
   AddStrongType(TStrongType(d)); {compiles fine}
   AddStrongType(w); {<- compile error}
   AddStrongType(TStrongType(w)); {compiles fine}
   AddStrongType(s); {compiles fine}
end;


Источник: Дельфи. Вокруг да около.


Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz