Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проблема с default value

268
07 октября 2007 года
Михаил
587 / / 25.06.2005
 
Код:
type
 TExceptionClass=class of Exception;
 
procedure asd(cls:TExceptionClass=[COLOR=Red]Exception[/COLOR]);
begin
...
end;
компилятору не нравится[COLOR=#000000], то что я присваиваю класс Exception,говорит, что нужна константа. Но ведь местоположение класса не изменяется в течении работы программы? или не так?[/COLOR]
303
08 октября 2007 года
makbeth
1.0K / / 25.11.2004
В данной конструкции компилятору требуется конкретное значение (число). Оно действительно не меняется в течении работы программы, но может изменятся от запуска к запуску - его определяет загрузчик ОС. Поэтому на этапе компиляции компилятор не может его определить и именно это ему не нравится.
309
09 октября 2007 года
el scorpio
1.1K / / 19.09.2006
Создать глобальную константу данного типа и проинициализировать объектом.
Потом её можно будет использовать везде, потому что данная ссылка на объект всегда будет расположена в одном и по одному и тому же адресу памяти
303
09 октября 2007 года
makbeth
1.0K / / 25.11.2004
Не-а, не проканает :)
Типизированные константы дельфи сами по себе таковыми не являются - они больше похоже в этом смысле на readonly поля C# - т.е. являются переменными "только для чтения". Соответственно, они и инициализируются скорее всего не в compile-time, а в run-time.
Михаил, можно из твоей ситуации выйти следующим образом (немного кривоватым, может быть):
 
Код:
procedure asd(cls: TExceptionClass); overload;
begin
end;

procedure asd; overload;
begin
    asd(Exception);
end;
268
09 октября 2007 года
Михаил
587 / / 25.06.2005
я сделал проще, стандартное значение cls nil, а уже в процедуре проверяю и если передан nil, значит cls=Exception
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог