|
![]() |
Hoje veremos o conceito de parâmetros de saída (out) na linguagem C#. |
Às vezes, os métodos devem retornar mais de um valor e não armazenar o estado da classe.
Usando parâmetros de saída (output), você pode retornar mais de um valor de uma função.
O parâmetro out preenche esses requisitos. Usando out podemos passar parâmetros cujas alterações são realizadas em seus métodos de chamada. O parâmetro out significa um parâmetro de referência.
Assim, os parâmetros de saída são semelhantes aos parâmetros de referência, exceto pelo fato de que eles transferem dados para fora do método.
O exemplo abaixo mostra um exemplo básico sobre a utilização do parâmetro out :
class Program
{
static void Main(string[] args)
{
int n;
MetodoA(out n);
// valor é agora igual a 44
Console.WriteLine("O valor de n é igual a = " + n);
Console.ReadLine();
}
static void MetodoA(out int i)
{
i = 44;
}
}
|
![]() |
Neste exemplo vemos que o método MetodoA() usa o parâmetro out para passar o valor da variável i, atribuído no método, para fora do método.
Vejamos outro exemplo:
class Program
{
public static void getValor(out int x)
{
int temp = 555;
x = temp;
}
static void Main(string[] args)
{
/* definição da variável local */
int a = 100;
Console.WriteLine("Antes da chamada do método: valor de a : {0}", a);
/* chamando a função para obter o valor */
getValor(out a);
Console.WriteLine("Depois da chamada do método, valor de a : {0}", a);
Console.ReadLine();
}
}
|
![]() |
Neste
código temos que variável fornecida para o parâmetro de saída não necessita ter
um valor atribuído.
Os parâmetros de saída são particularmente úteis quando você precisa retornar
valores de um método através dos parâmetros sem atribuir um valor inicial para o
parâmetro.
Este exemplo mostra como os valores atribuídos no método usando o parâmetro out são repassados para fora do método:
class Program
{
public static void getValores(out int x, out int y)
{
Console.WriteLine("Informe o primeiro valor : ");
x = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Informe o segundo valor : ");
y = Convert.ToInt32(Console.ReadLine());
}
static void Main(string[] args)
{
/* definição da variável local */
int a, b;
/* chamando a função para obter o valor */
getValores(out a, out b);
Console.WriteLine("Depois da chamada do método, valor de a : {0}", a);
Console.WriteLine("Depois da chamada do método, valor de b : {0}", b);
Console.ReadLine();
}
}
|
![]() |
class Program
{
static void MetodoA(out int i, out string s1, out string n1)
{
i = 999;
s1 = "Macoratti .net";
n1 = null;
}
static void Main(string[] args)
{
int valor;
string str1, str2;
MetodoA(out valor, out str1, out str2);
Console.WriteLine("Valores retornados : {0} , {1}, {2} ", valor, str1, str2);
Console.ReadLine();
}
}
|
![]() |
E estamos conversados...
Pegue o projeto aqui : ParametrosOutuput.zip
E disse-lhe Jesus: Eu vim a este mundo
para juízo, a fim de que os que não vêem vejam, e os que vêem sejam cegos.
João 9:39
Referências:
VB .NET - Parâmetros e Argumentos - conceitos - Macoratti.net
VB.NET - Lendo parâmetros da linha de comando - Macoratti.net