14.03.2011, 13:34 | #1 |
Участник
|
базовый вопрос X++, частичная передача параметров по умолчанию
Добрый день всем, есть если возможность при вызове функции (метода) имеющего необязательные параметры, поименно обратится к только одному параметру во время вызова функции (метода):
Типа такого, пусть есть функция, с таким определением: str function myTest( int _i="99", str _s ="fox") Пусть я вызываю ее тут X++: main() { //делаю типа такого, первый параметр не интересует, второй же хочу передать, но ошибка компиляции во всех случаях myTest ( ,_s="two fox"); myTest ( ,"two fox"); myTest ( ,_s:="two fox"); } myTest (99 ,"two fox");
__________________
The Variable men power. |
|
14.03.2011, 13:52 | #2 |
MCP
|
Можно вот как:
1. Пусть есть метод: X++: void myMethod(Int _i, str _s) { ; // тело метода } X++: this.myMethod(1, "fox"); X++: void myMethod(Int _i=0, str _s="") { ; // тело метода } X++: this.myMethod(0, "fox"); X++: prmIsDefault() Последний раз редактировалось kornix; 14.03.2011 в 14:00. |
|
|
За это сообщение автора поблагодарили: AlGol (2), Poleax (1). |
14.03.2011, 14:50 | #3 |
Участник
|
Цитата:
функция prmIsDefault() опеределяет не то, что входящее значение является дефолтным, а был ли параметр функции присвоен по дефолту или получен извне. Т.е. если есть функция X++: void fn(boolean b = true, int j = 42) { ; print prmIsDefault(b); pause; } А при вызове fn(true), мы получим 0. |
|
|
За это сообщение автора поблагодарили: kornix (1). |
14.03.2011, 14:52 | #4 |
Участник
|
Цитата:
См.также Greg On Dynamics Ax: Refactoring a long parameter list of boolean flags По поводу prmIsDefault. Эта функция позволяет определить был ли параметр при вызове функции указан явно (не важно совподающий по значению с параметром по умолчанию или нет) или же была использована сокращённая форма вызова. Т.е. с помощью неё можно отличить например такие два случая: X++: void myMethod(Int _i, str _s="") { ; // тело метода } X++: this.myMethod(0, "");
this.myMethod(0); |
|
14.03.2011, 14:55 | #5 |
северный Будда
|
присваивать интовой переменной по умолчанию строку - это сильно
а вообще - я в таких (прямо скажем, не очень частых) случаях передаю параметром контейнер. а уже внутри функции разбираю его на составляющие.
__________________
С уважением, Вячеслав |
|
|
За это сообщение автора поблагодарили: Pustik (2), DSPIC (-2). |
14.03.2011, 19:24 | #6 |
Участник
|
Большое спасибо всем!
__________________
The Variable men power. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Передача переменного числа параметров в метод | 16 | |||
Передача параметров запроса из CurrentList | 3 | |||
Передача параметров | 7 | |||
Передача параметров | 2 | |||
передача параметров в Report | 1 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|