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.

Fonte: http://sysdictcoder.com/blog/