Argumentos in C#

Argumento é aquilo que o método recebe de quem o chamou. Quando passamos um parâmetro para um método, este está recebendo um argumento.

Argumentos nomeados

Este tipo de argumento te livra da necessidade de lembrar a ordem dos parâmetros de um método. Cada argumento pode ser especificado pelo seu nome no momento em que for passado.

Por exemplo, o código a seguir exibe a mensagem de bom dia a uma pessoa recebendo nome e sobrenome.

using System;				
public class Program
{
	public static void Main()
	{
		var fName = "Leandro";
		var lName = "Lisura";
		var greeting1 = Greeting (lastName: lName, firstName: fName);
		Console.WriteLine(greeting1);
		var greeting2 = Greeting (firstName: fName, lastName: lName);
		Console.WriteLine(greeting2);
	}
	public static string Greeting (string firstName, string lastName)
	{
		return "Hello, " + firstName + " " + lastName;
	}
}

Argumentos opcionais

Quando um método é definido podemos especificar um valor padrão para os parâmetros que são opcionais. É importante deixar claro que os parâmetros opcionais devem sempre vir após os parâmetros obrigatórios.

No momento da chamada do método, os argumentos faltantes serão preenchidos com os valores definidos na assinatura do mesmo. Tornando assim estes valores opcionais.

Por exemplo, um método que sempre vai retornar Bom dia, a não ser que seja enviada uma saudação nova.

using System;					
public class Program
{
	public static void Main()
	{
		var fName = "Leandro";
		var lName = "Lisura";
		var nGreeding = "Good night";
		var greeting1 = Greeting (lName, fName);
		Console.WriteLine(greeting1);
		var greeting2 = Greeting (fName, lName, nGreeding);
		Console.WriteLine(greeting2);
	}
	public static string Greeting (string firstName, string lastName, string greeding = "Good morning")
	{
		return greeding + ", " + firstName + " " + lastName;
	}
}

Argumentos passados por referência ref

Argumentos passados por referência copia o endereço de memória. Dentro do método o endereço é usado para acessar o valor do argumento. Isso significa que qualquer mudança feita no parâmetro afeta o argumento.

O efeito de passar por referência é que qualquer alteração no argumento do método chamado será refletida no valor.

Para passar o parâmetro por referência use a palavra “ref” na chamada e na assinatura do método.

Por exemplo, podemos alterar minha variável “name” adicionando minha saudação diretamente a ela.

using System;		
public class Program
{
	public static void Main()
	{
		var name = "Leandro Lisura";
		Greeting(ref name);
		Console.WriteLine(name);
	}
	public static void Greeting (ref string name)
	{
		name = "Good morning" + ", " + name;
	}
}

Argumentos passados por referência out

Argumentos passados por Output são similares ao por referência, exceto que eles transferem dados para fora do método ao invés de aceitar dados na entrada.

Este parâmetro é definido usando a palavra “out” na assinatura do método.

Variáveis passadas como argumentos “out” não precisam ser inicializadas antes de serem passadas em uma chamada de método. No entanto, o método chamado é necessário para atribuir um valor antes que o método seja retornado.

Por exemplo, podemos alterar as variáveis dentro do método e utilizar depois no fluxo da aplicação.

using System;				
public class Program
{
	public static void Main()
	{
		string fName, lName;
		Greeting (out fName, out lName);
		Console.WriteLine(fName + lName);

	}
	public static void Greeting (out string firstName, out string lastName)
	{
		firstName = "Hello, Leandro";
		lastName = " Lisura.";
	}
}

Qualquer dúvida ou dicas, entre em contato: leandrolt@gmail.com

Leave a Reply

Your email address will not be published. Required fields are marked *