Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não entendi essa questão.

Não entendi a razão dessa resposta: arg1 opcional 2, opcional 1 arg2 e Executando método sem argumentos.

2 respostas

Iuri, bom dia.

Isso ocorre porquê o método TestaOpcional, que é uma sobrecarga possui parâmetros opcionais, como conseguimos identificar isso? Os parâmetros na assinatura do método estão recebendo um valor padrão, mas isso também não é obrigatório, e quando invocamos o métodos epor algum motivo não passamos algum dos parâmatros da sua assinatura.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Um exemplo:

public int Calculo(int a,int b)
{
   return a*b;
}

// executando...

int resultado = Calculo(10);

Espero ter ajudado.

solução!

O que eu não consegui entender foi o fato do método atribuir "valores" para os parâmetros : static void TestaOpcional(string arg1 = "opcional 1", string arg2 = "opcional 2") .

E após isso printar o valores pelo Console.WriteLine($"{arg1} {arg2}"); - quando chama o método (logo a baixo) ignora os valores atribuídos (Essa é a dúvida).

após isso ele fez uso do metodo TestaOpcional :

TestaOpcional(arg1: "arg1"); TestaOpcional(arg2: "arg2"); TestaOpcional();

Eu tirei a seguinte conclusão, por favor me corrija caso eu esteja equivocado, quando o TestaOpcional é chamado no final do código, ele define previamente o valor do arg1 como "arg1", e como o valor de arg2 não foi definido na chamada, automaticamente pelo preenchimento do static void TestaOpcional (string arg1 = "opcional 1", --> string arg2 = "opcional 2" <--) o valor mostrado será o do método com o argumento opcional, que em questão será o "valor" "opcioanl 2".

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software