Переключение на Главную Страницу Страницы: 1 ... 6 7 [8]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Повторная передача параметра по умолчанию (число прочтений - 45575 )
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Повторная передача параметра по умолчанию
Ответ #105 - 28. Июня 2006 :: 18:54
Печать  
Deb писал(а) 28. Июня 2006 :: 11:14:
Не понимаю в чем проблема, почему нельзя делать так:
void Метод1_СПараметромПоУмолчанию(СписокЗначений Список=СоздатьОбъект("СписокЗначений"));

И типизацией все в порядке и по умолчанию объетк создается и вызывать снова можешь этот же метод, передавая туда этот же параметр.  Ужас


Хотелось бы ответить, но уже привел несколько аргументов на эту тему. Все их сюда переписывать не хочется.

Если интересто - просмотри мои посты, pls.

PS. Кстати, мы нашли даже более простое решение, если верить документации:
void Метод1_СПараметромПоУмолчанию(СписокЗначений Список="СписокЗначений");  Очень довольный
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Повторная передача параметра по умолчанию
Ответ #106 - 28. Июня 2006 :: 19:29
Печать  
sedmin писал(а) 28. Июня 2006 :: 18:54:
Deb писал(а) 28. Июня 2006 :: 11:14:
Не понимаю в чем проблема, почему нельзя делать так:
void Метод1_СПараметромПоУмолчанию(СписокЗначений Список=СоздатьОбъект("СписокЗначений"));
Ужас

PS. Кстати, мы нашли даже более простое решение, если верить документации:
void Метод1_СПараметромПоУмолчанию(СписокЗначений Список="СписокЗначений");  Очень довольный

Угу, я как раз хотел по-дружески спросить:
- Deb, ладно мы, но ты сам-то свою документацию читал? Смех
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Deb
1c++ developer
Отсутствует


Sex, drugs and 1C

Сообщений: 41
Зарегистрирован: 21. Мая 2006
Re: Повторная передача параметра по умолчанию
Ответ #107 - 29. Июня 2006 :: 08:00
Печать  
kms писал(а) 28. Июня 2006 :: 19:29:
sedmin писал(а) 28. Июня 2006 :: 18:54:
Deb писал(а) 28. Июня 2006 :: 11:14:
Не понимаю в чем проблема, почему нельзя делать так:
void Метод1_СПараметромПоУмолчанию(СписокЗначений Список=СоздатьОбъект("СписокЗначений"));
Ужас

PS. Кстати, мы нашли даже более простое решение, если верить документации:
void Метод1_СПараметромПоУмолчанию(СписокЗначений Список="СписокЗначений");  Очень довольный

Угу, я как раз хотел по-дружески спросить:
- Deb, ладно мы, но ты сам-то свою документацию читал? Смех

Я ее писал, но давно... Улыбка
  
Наверх
 
IP записан
 
Deb
1c++ developer
Отсутствует


Sex, drugs and 1C

Сообщений: 41
Зарегистрирован: 21. Мая 2006
Re: Повторная передача параметра по умолчанию
Ответ #108 - 29. Июня 2006 :: 08:11
Печать  
sedmin писал(а) 28. Июня 2006 :: 18:54:
Deb писал(а) 28. Июня 2006 :: 11:14:
Не понимаю в чем проблема, почему нельзя делать так:
void Метод1_СПараметромПоУмолчанию(СписокЗначений Список=СоздатьОбъект("СписокЗначений"));

И типизацией все в порядке и по умолчанию объетк создается и вызывать снова можешь этот же метод, передавая туда этот же параметр.  Ужас


Хотелось бы ответить, но уже привел несколько аргументов на эту тему. Все их сюда переписывать не хочется.

Если интересто - просмотри мои посты, pls.

PS. Кстати, мы нашли даже более простое решение, если верить документации:
void Метод1_СПараметромПоУмолчанию(СписокЗначений Список="СписокЗначений");  Очень довольный


Я просто не могу понять, чем записть void Метод1_СПараметромПоУмолчанию(СписокЗначений Список="");
типо здесь, как я понял будет создаваться тот же объект "СписокЗначений"

отличается от записи void Метод1_СПараметромПоУмолчанию(СписокЗначений Список="СписокЗначений");
кроме размера конечно, чтобы стоило менять поведение компоненты и терять строгую проверку типов в методах?

Короче не вижу повода и серьезных аргументов для переделок...
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Повторная передача параметра по умолчанию
Ответ #109 - 29. Июня 2006 :: 09:01
Печать  
Deb писал(а) 29. Июня 2006 :: 08:00:
Я ее писал, но давно... Улыбка

Дмитрий, а вот этот момент в доке не расшифруешь?

Цитата:
Кроме того, акцентирую вот этот момент:

Цитата:
Внимание: при указании в качестве значения по умолчанию “” – тип значения не учитывается.

Что имел в виду Deb? Где не учитывается? В проверке типов? Сейчас это не выполняется.
Баг? Или неточная формулировка?

Здесь что имел в виду?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Deb
1c++ developer
Отсутствует


Sex, drugs and 1C

Сообщений: 41
Зарегистрирован: 21. Мая 2006
Re: Повторная передача параметра по умолчанию
Ответ #110 - 29. Июня 2006 :: 10:03
Печать  
kms писал(а) 29. Июня 2006 :: 09:01:
Deb писал(а) 29. Июня 2006 :: 08:00:
Я ее писал, но давно... Улыбка

Дмитрий, а вот этот момент в доке не расшифруешь?

Цитата:
Кроме того, акцентирую вот этот момент:

Цитата:
Внимание: при указании в качестве значения по умолчанию “” – тип значения не учитывается.

Что имел в виду Deb? Где не учитывается? В проверке типов? Сейчас это не выполняется.
Баг? Или неточная формулировка?

Здесь что имел в виду?


Сложно сказать... Думаю что имелось ввиду, отсутствие проверки типа при отсутствии фактического параметра...
  
Наверх
 
IP записан
 
Deb
1c++ developer
Отсутствует


Sex, drugs and 1C

Сообщений: 41
Зарегистрирован: 21. Мая 2006
Re: Повторная передача параметра по умолчанию
Ответ #111 - 29. Июня 2006 :: 10:07
Печать  
Сейчас проверил, именно это и имелось ввиду. Бага нет, по крайней мере на релизе 1.8.1.6.
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Повторная передача параметра по умолчанию
Ответ #112 - 29. Июня 2006 :: 19:59
Печать  
Deb писал(а) 29. Июня 2006 :: 08:11:
Я просто не могу понять, чем записть void Метод1_СПараметромПоУмолчанию(СписокЗначений Список="");
типо здесь, как я понял будет создаваться тот же объект "СписокЗначений"

Короче не вижу повода и серьезных аргументов для переделок...


Лучше записать в предлагаемой "новой" нотации:

void Метод1_СПараметромПоУмолчанию(СписокЗначений Список=%%);

Здесь параметр становится не пустым списком значений, а значением, назовом его Null. И это вполне нормально, потому что этот список тут, по сути, не нужен. Нужен только маркер, обозначающий, что параметр пропущен.

Этим маркером и выступает Null. Но проблема заключается в том, что этот маркер нельзя передать дальше транзитом - если параметр не пропущен, то производится проверка типов, и возникает ошибка.

Цитата:
Думаю что имелось ввиду, отсутствие проверки типа при отсутствии фактического параметра...


И вот это тоже зря - описано, что параметр будет одного типа, а на самом деле - другого. И опять транзитом его не передашь.

Предлагаю: для параметров по умолчанию сделать обычную проверку типов, но сделать исключение для Null, как для признака пропущенного параметра.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 6 7 [8] 
ОтправитьПечать