06 Dec 2009
Posted by: Ricardo Pichler in: X++
Como vocês já sabem, o X++ suporta métodos com valores padrão. No AX é possível detectar quando o valor padrão é usado, com o método prmIsDefault(). Para fazer um teste, crie uma classe com um método como este:
1 2 3 4 5 6 7 8 | void someMethod(int i = 1) { ; if (prmIsDefault(i)) info('Default'); else info('Valor passado'); } |
E agora chame-o:
1 2 | o.someMethod(); o.someMethod(1); |
Mesmo que o valor passado for o mesmo que o default, a mensagem que “Valor Passado” será exibida.
Agora você deve estar se perguntando onde isso pode ser util? Alguns cenários:
•Evitar operações trabalhosas se o valor default for usado;
•Evitar inicializações não desejadas;
•Tratar customizações que requerem um paramêtro extra nas classes padrões do AX.
Se você pesquisar por prmIsDefault() na AOT você verá que ele é constantemente usado. Classes com o prefixo AX são os exemplos mais óbvios, porque métodos get e set são feitos em um único método e em alguns casos você precisará saber se o método foi usado como get ou set para manter o track dos valores modificados.
Leave a reply