O C# 4 traz uma série de novidades em sua estrutura. Uma delas é poder ter parâmetros opcionais em métodos, construtores e indexadores. Vamos ver aqui na prática como utilizar. Imagine a situação onde você precisa criar um método com vários parâmetros, alguns já possuem valor padrão, outros não, veja Listagem 1.

Listagem 1. Parâmetros opcionais

public DialogResult ExibirMensagem(string mensagem, MessageBoxButtons botoes, 
 MessageBoxIcon icone, string tituloJanela = "Aviso Devmedia", bool salvar = false, bool sobrescrever = false)
  {
     var result = MessageBox.Show(mensagem, tituloJanela, botoes, icone);
     if (salvar)
     {
         var sb = new StringBuilder();
         sb.Append("Na pergunta ");
         sb.Append(mensagem);
         sb.Append(" o usuário escolheu: ");
         sb.Append(result.ToString());
         if (sobrescrever)
        {
            File.WriteAllText("D:\\Paulo\\resposta.txt", sb.ToString());
        }
        else
        {
             File.AppendAllText("D:\\Paulo\\resposta.txt", sb.ToString());
         }
   }
   return result;
} ... 

Quer ler esse conteúdo completo? Tenha acesso completo