09.11.2009, 09:50 | #1 |
Участник
|
метод find как private !?
Microsoft Dynamics 4.0
kernel version 4.0.2501.116 application version 4.0.2501.347 На таблице EmplLedger_RU метод find объявлен как private — зачем, может кто нибудь разъяснить? X++: private static EmplLedger_RU find(EmplPostingProfile_RU _emplPostingProfile, boolean _forUpdate = false) { EmplLedger_RU emplLedger; if (_emplPostingProfile) { emplLedger.selectForUpdate(_forUpdate); select firstonly emplLedger where emplLedger.PostingProfile == _emplPostingProfile; } return emplLedger; } |
|
09.11.2009, 10:09 | #2 |
Moderator
|
Бред! У нас в 3.0 SP4 на слое dis тоже private, а на слое var - уже public (виват GMCS).
Так что исправляйте и радуйтесь жизни дальше P.S. Вообще не очень догоняю, как может быть private СТАТИЧЕСКИЙ метод. Хотя поиском в AOT по строке "private static" в узле таблиц находятся несколько таких мест... Последний раз редактировалось Gustav; 09.11.2009 в 10:15. |
|
09.11.2009, 10:44 | #3 |
Боец
|
|
|
09.11.2009, 11:17 | #4 |
Участник
|
Цитата:
А тот, кто создавал эту таблицу для рос.локализации, не заметил этого. Врядли кто-то это делал специально |
|
09.11.2009, 11:19 | #5 |
Участник
|
Цитата:
НЕстатические методы могут использовать внутреннее состояние объекта, поэтому иногда их вызов возможен только из определённых мест программы. Для предотвращения других вызовов здесь логично использовать спецификатор private. Статический же метод зависит только от внешнего контекста и просто принадлежит некоторому пространству имён. |
|
|
За это сообщение автора поблагодарили: Gustav (1). |
09.11.2009, 11:19 | #6 |
MCITP
|
Цитата:
Согласен с Густавом по поводу сомнительности смысловой нагрузки данного объявления метода find... Я у себя на приложении когда-то давно тоже убирал private на этой таблице, т.к. смысла не нашёл, а использовать было надо....
__________________
Zhirenkov Vitaly |
|
09.11.2009, 11:20 | #7 |
MCITP
|
Да нет, эта фича на этой таблице была ещё в 3-ке...
__________________
Zhirenkov Vitaly |
|
09.11.2009, 11:22 | #8 |
Moderator
|
Все правильно - посмотрите, например, класс SysQuery
__________________
С уважением, kvan. |
|
09.11.2009, 11:29 | #9 |
Боец
|
Цитата:
Сообщение от S.Kuskov
Вопрос в другом. Каковы могут быть причины блокировать статический метод от внешних вызовов?
НЕстатические методы могут использовать внутреннее состояние объекта, поэтому иногда их вызов возможен только из определённых мест программы. Для предотвращения других вызовов здесь логично использовать спецификатор private. Статический же метод зависит только от внешнего контекста и просто принадлежит некоторому пространству имён. Другое дело, что не всегда использование модификаторов продумывается, закрывается то, что не нужно закрывать и т.п. Здесь, про find тоже думаю, что косяк |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|