domingo, 24 de agosto de 2008

Definido Parâmetros com valor default

Podemos definir argumentos de sub-rotinas possuindo valores pré-definidos. Esse recurso, os parâmetros de valor default, foi introduzidos no Delphi na versão 4. Desde então os progrmadores Delphi desfrutaram da capacidade de fornecer um valor default para um parâmetro de procedimento ou função sem a obrigatoriedade de passar esse parâmetro quando a rotina é chamada.
Para declarar um procedimento ou função que contenha parâmetros de valor default, coloque um sinal de igualdade e o valor default depois do tipo de parâmetro, como mostrado no exemplo a seguir:

procedimento EstacaoZNDefaultTeste(const TextValue: string; NumValue: Integer = 0);


Veja que é possível chamar o procedimento “EstacaoZNDefaultTeste ( )” de duas formas:

Uma delas, digamos que seja a primeira, você pode atribuir valor para ambos os parâmetros:

EstacaoZNDefaultTeste (‘hello ZN World’, 22);

Outra forma, digamos seja a segunda, você pode atribuir apenas o parâmetro “TextValue” e usar o valor default para “NumValue”:

EstacaoZNDefaultTeste (‘Hello Zn Landjah!!’); // valor default será usado pelo compilador para NumValue.

Devemos atender ao seguintes pontos para respeitar regras ao usar parâmetros (argumentos) de valor default:
1 - Os parâmetros com valores default devem aparecer no final da lista de parâmetros.
2 - Os parâmetros sem valores default não devem vir depois dos parâmetros com valores default em uma lista de parâmetros da função ou procedimento.
3 - Os parâmetros de valor default devem ser de um tipo ordinal, ponteiro ou conjunto.
4 - Os parâmetros de valor default devem ser passados por valor ou como constante. Eles não devem ser parâmetros não-tipificados ou de referência (out).

Um dos maiores benefícios dos parâmetros de valor default é poder criar versões mais diferentes de funcionalidades (funções e procedimentos) pré-existentes sem sacrificar a compatibilidade com versões anteriores. Ou seja, é possível durante a manutenção de um sistema recodificar determinada função sem sofrer reflexos am partes antigas do sistema definindo o novo parâmetro com valor default. Isso lhe poupará de fazer refactoring no sistema todo.


Nenhum comentário:

Postar um comentário