Deb писал(а) 29. Июня 2006 :: 08:11:Я просто не могу понять, чем записть void Метод1_СПараметромПоУмолчанию(СписокЗначений Список="");
типо здесь, как я понял будет создаваться тот же объект "СписокЗначений"
Короче не вижу повода и серьезных аргументов для переделок...
Лучше записать в предлагаемой "новой" нотации:
void Метод1_СПараметромПоУмолчанию(СписокЗначений Список=%%);
Здесь параметр становится не пустым списком значений, а значением, назовом его Null. И это вполне нормально, потому что этот список тут, по сути, не нужен. Нужен только маркер, обозначающий, что параметр пропущен.
Этим маркером и выступает Null. Но проблема заключается в том, что этот маркер нельзя передать дальше транзитом - если параметр не пропущен, то производится проверка типов, и возникает ошибка.
Цитата:Думаю что имелось ввиду, отсутствие проверки типа при отсутствии фактического параметра...
И вот это тоже зря - описано, что параметр будет одного типа, а на самом деле - другого. И опять транзитом его не передашь.
Предлагаю: для параметров по умолчанию сделать обычную проверку типов, но сделать исключение для Null, как для признака пропущенного параметра.