Опрос
Опрос Тема Опроса: Нужна фича или нет?
bars   pie

Да    
  15 (88.2%)
Нет    
  1 (5.9%)
Мне все равно    
  1 (5.9%)




Всего голосов: 17
« Создано: artbear : 12. Декабря 2007 :: 15:32 »
Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Параметры по умолчанию - брать из модуля класса ? (число прочтений - 12329 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Параметры по умолчанию - брать из модуля класса ?
12. Декабря 2007 :: 15:29
Печать  
Народ, в 1С++ я могу добавить удобную возможность - параметры по умолчанию для методов класса можно будет брать из модуля определения самого класса, а не обязательно описывать в прм-файле.

Минусы :
1. Значения по умолчанию будут только простейшие, т.е. также как у 1С Печаль, а не расширенные, как в прм-файле.
Например, нельзя будет задавать значение по умолчанию как результат вызова функции.
Т.е. методы с подобными "хитрыми" параметрами по умолчанию по-прежнему нужно описывать в прм-файле.
2. Методы с неопределенным числом параметров также нужно будет по-прежнему описывать в прм-файле.

Плюсы :
1. ИМХО в большинстве случаев используются не "хитрые" умолчальные параметры, а простые, разрешенные 1С.
И было бы удобно описывать подобные параметры прямо в модуле класса, что позволяет сократить время создания класса и увеличить удобство использования методов класса.
2. При текущем поведении, если в прм-файле заданы параметры по-умолчанию для метода "МетодКОП", вызов ОбъектКОП.МетодКОП() в модуле класса отличается от простого вызова МетодКОП(), что часто приводит к путанице Печаль
В предлагаемом варианте оба вызова будут давать один результат Улыбка

Естественно, если будут заданы параметры и в модуле прм-файла, и в модуле класса, нужно
1. выдавать ошибку компиляции об этом
2. использовать значения из прм-файла для совместимости и как наиболее мощные.

Уф, вроде все описал, ничего не забыл Улыбка

Нужна подобная фича или все-таки нет?

ЗЫ работу с умолчальными параметрами из модуля я уже делал для ФормЕкс, там все просто Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #1 - 12. Декабря 2007 :: 15:37
Печать  
А почему бы и нет?
ИМХО, если будут заданы параметры и в модуле прм-файла и в модуле класса, то нужно постпать по п.2, т.е.
Цитата:
использовать значения из прм-файла для совместимости и как наиболее мощные.
  
Наверх
 
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #2 - 12. Декабря 2007 :: 16:30
Печать  
Наконец-то!
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #3 - 12. Декабря 2007 :: 17:36
Печать  
С одной стороны - каша будет.
С другой стороны - начинающим пользователям (которые и варят кашу) будет проще, ибо синтаксис defcls.prm обламывает многих.

Поскольку обратная совместимость не пострадает - я за.
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Параметры по умолчанию - брать из модуля класс
Ответ #4 - 12. Декабря 2007 :: 23:27
Печать  
fez писал(а) 12. Декабря 2007 :: 17:36:
С другой стороны - начинающим пользователям (которые и варят кашу) будет проще, ибо синтаксис defcls.prm обламывает многих.

Поскольку обратная совместимость не пострадает - я за.

+1

Можно было бы еще одно голосование устроить: у кого-нибудь используется этот расширенный синтаксис задания параметров по-умолчанию?
А проверка типов?

ИМХО весь этот crap - это что-то типа консервной банки, привязанной к хвосту кошки: повсюду следует за хозяйкой и гремит.
  

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


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #5 - 13. Декабря 2007 :: 04:55
Печать  
Я - за.  Что-то не припоминаю случая, когда умолчания были не простых типов.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #6 - 13. Декабря 2007 :: 07:11
Печать  
Стыдно признаться, но про это: Цитата:
Например, нельзя будет задавать значение по умолчанию как результат вызова функции.
Т.е. методы с подобными "хитрыми" параметрами по умолчанию по-прежнему нужно описывать в прм-файле.

Я вообще не слышал (и нигде не видел). Может кто-нить покажет работающий код?
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #7 - 13. Декабря 2007 :: 09:41
Печать  
kms писал(а) 12. Декабря 2007 :: 23:27:
у кого-нибудь используется этот расширенный синтаксис задания параметров по-умолчанию?

У меня.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #8 - 13. Декабря 2007 :: 09:43
Печать  
JohnyDeath писал(а) 13. Декабря 2007 :: 07:11:
Стыдно признаться, но про это: Цитата:
Например, нельзя будет задавать значение по умолчанию как результат вызова функции.
Т.е. методы с подобными "хитрыми" параметрами по умолчанию по-прежнему нужно описывать в прм-файле.

Я вообще не слышал (и нигде не видел). Может кто-нить покажет работающий код?


В качестве значения по умолчанию в .prm файле может использоваться любое выражение, которое может быть вычислено в контексте глобального модуля.
То есть это всевозможные функции типа ТекущаяДата(), глобальные экспортные функции, а так же их суммы/произведения и прочее.
  
Наверх
www  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Параметры по умолчанию - брать из модуля класс
Ответ #9 - 13. Декабря 2007 :: 09:57
Печать  
Мне достаточно только неопределенного количества параметров Улыбка
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #10 - 13. Декабря 2007 :: 10:24
Печать  
Цитата:
Мне достаточно только неопределенного количества параметров Улыбка

+1 Улыбка
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #11 - 13. Декабря 2007 :: 10:50
Печать  
Как начинающий пользователь классов 1с++ отвечу, При текущем поведении, если в прм-файле заданы параметры по-умолчанию для метода "МетодКОП", вызов ОбъектКОП.МетодКОП() в модуле класса отличается от простого вызова МетодКОП(), что часто приводит к путанице - с этим как то пока не столкнулся, автопараметры defcls только начал юзать, и то очень редко, (в классе метод описанный с автопараметрами не вызывается, того вне класса есть вызовы) просто они не часто нужны в принципе. Но идея нравитцо, тем более что решится проблема описанная выше, не теряя старой функциональности.
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Параметры по умолчанию - брать из модуля класс
Ответ #12 - 13. Декабря 2007 :: 12:04
Печать  
А кстати, "знач" для параметров классов кто-то реализовывал уже или планировал реализовать?
Какая сейчас ситуация?
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Параметры по умолчанию - брать из модуля класс
Ответ #13 - 13. Декабря 2007 :: 12:06
Печать  
fez писал(а) 13. Декабря 2007 :: 09:41:
kms писал(а) 12. Декабря 2007 :: 23:27:
у кого-нибудь используется этот расширенный синтаксис задания параметров по-умолчанию?

У меня.

Я должен был догадаться Улыбка
Если будут функторы, которые можно использовать в качестве параметров по умолчанию, это позволит отказаться от этого функционала?
  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметры по умолчанию - брать из модуля класс
Ответ #14 - 13. Декабря 2007 :: 12:13
Печать  
kms писал(а) 13. Декабря 2007 :: 12:04:
А кстати, "знач" для параметров классов кто-то реализовывал уже или планировал реализовать?
Какая сейчас ситуация?

Я этот вопрос поднимал по-моему в июне. С тех пор ничего не делалось.
Артур этим заниматься, насколько я понимаю, не планировал.

P.S. А фича нужная
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать