Aug 31 2011

C# 4.0 Parâmetros Opcionais

Category: C#Suzuki @ 07:51

Olá pessoal,
Esta postagem visa mostrar uma novidade que foi inserida no C# versão 4 ou versão 4.0.
Optional parameter, ou traduzindo, parâmetros opcionais ou argumentos opcionais. O que são, o que fazem e como utilizar?

Segundo a MSDN a definição de um método, construtor, indexador ou representante pode especificar que os seus parâmetros são necessários ou que eles são opcionais.Qualquer chamada deve fornecer argumentos para todos os parâmetros necessários, mas pode omitir argumentos para os parâmetros opcionais.
Cada parâmetro opcional tem um valor padrão como parte de sua definição.Se nenhum argumento for enviado para esse parâmetro, o valor padrão é usado.Valores padrão devem ser constantes.
Parâmetros opcionais são definidos no final da lista de parâmetros, após quaisquer parâmetros necessários.Se o chamador fornece um argumento para qualquer um de uma sucessão de parâmetros opcionais, ele deve fornecer argumentos para todos os parâmetros opcionais de anteriores.Separados por ponto-e-vírgula lacunas na lista de argumentos não são suportadas.

Se você quiser mais detalhes a sobre Optional Arguments.

Para que um parametro se torne opcional devemos declarar um valor default para o mesmo:

  1. public string WhoAmI(string name = "Ninja Code")   
  2. {   
  3.     return name;   
  4. }  

Agora ao chamarmos o método podemos passar ou não o argumento name:

E o resultado seria a string: "Ninja Code".
Ou então, poderiamos passar um valor para o metodo:

  1. WhoAmI("Ninja Code - Simplificando e Desmitificando");  

E o resultado seria a string: "Ninja Code - Simplificando e Desmitificando".
Antenção parâmetros opcionais não pode ser marcados com ref ou out.
Outro ponto fundamental, é que no caso de existir dois parâmetros opcionais, você poderá passar um deles.
Veja o exemplo:

  1. public string WhoAmI(string name = "Ninja Code"string link = "http://www.ninjacode.com.br")   
  2. {   
  3.     return name + " - " + link;   
  4. }  

Quando executamos o método passando apenas um argumento:

  1. WhoAmI("Thiago");  

O resultado seria a string: "Thiago - http://www.ninjacode.com.br"
Este é um conceito importante e se complementa com o conceito de Argumentos nomeados.

Espero que tenha ajudado.
Até a próxima.
Simplificando e Desmitificando.

Porque também Cristo padeceu uma vez pelos pecados, o justo pelos injustos, para levar-nos a Deus; mortificado, na verdade, na carne, mas vivificado pelo Espírito; (1 Pedro 3:18)

Tags: , , , , , , , ,

Comments

1.
pingback thiagosatoshisuzuki.wordpress.com says:

Pingback from thiagosatoshisuzuki.wordpress.com

C# 4.0 Parâmetros Opcionais « Thiago Satoshi Suzuki

2.
pingback thiagosatoshisuzuki.wordpress.com says:

Pingback from thiagosatoshisuzuki.wordpress.com

C# 4.0 Parâmetros Opcionais « Thiago Satoshi Suzuki

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading