Desenvolvimento - C#
Coalescing Operador C# ?? null
Neste artigo o autor está disposto a mostrar uma nova maneira de utilizar um novo operador C#.NET, que tem o objetivo de verificar se o valor é nulo. Caso for nulo o mesmo atribui automaticamente outro valor.
por Mauricio JuniorOlá pessoal, meu nome é Mauricio Junior. Estou disposto a mostrar uma nova maneira de utilizar um novo operador C#.NET, que tem o objetivo de verificar se o valor é nulo. Caso for nulo o mesmo atribui automaticamente outro valor.
Pode ser usado também para instanciar nova classe, verifica se a mesma já está instanciada; caso não for, cria uma nova.
Requisitos:
- Visual Studio.NET 2005 - Framework 2.0 instalado - Conhecimento básico - Linguagem C#.NET - Service Pack 1 VS.NET Instalado
|
O bom mesmo é mostrar os exemplos feitos para que você entenda melhor e mais fácil podendo assim praticar em casa e em sua máquina. Assim criei um projeto do tipo Web.
Classe
Criei uma nova classe em Add new Item... clicando com o botão direito em cima do projeto. O nome da classe é clsClasse.cs. Referência 1.1
public class clsClasse { public String recebe() { return "meu nome"; } public String mostrar() { return "mostrar"; } }
|
Referência: 1.1
Explicação:
Dentro da classe, criei dois métodos que tornam o tipo String e não recebem parâmetro algum. São métodos simples, que apenas retornam uma string qualquer.
Na classe principal “default.aspx.cs” fiz uma declaração para a classe. Logo depois do public partial class _Default... (Referência 1.2)
clsClasse myClasse;
|
Referência: 1.2
Modo antigo de instanciar
Antigamente utilizava um “if" para verificar se a classe já tinha uma instância criada, caso não tivesse, criava automaticamente. (Referência 1.3)
clsClasse myClasse;
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if(myClasse == null){ myClasse = new myClasse(); } lblResultado.Text = myClasse.recebe(); } } |
Referência: 1.3
Novo modelo de instanciar
Depois de verificar, caso fosse null criava uma nova instância e chamava o método público. Com o novo operador pode ser feito da seguinte maneira: (Referência 1.4)
clsClasse myClasse;
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { myClasse = myClasse ?? new clsClasse(); lblResultado.Text = myClasse.recebe(); } } |
Referência: 1.4
No modo antigo era feito a verificação em 3 linhas, no novo modo é feito em apenas uma linha.
Outros exemplos
Verificando se a string for nula, caso verdadeiro atribui o outro valor.
string mensagem = null string a = mensagem ?? "junior";
//resultado retornado junior |
Referência: 1.5
string mensagem = "mauricio"; string a = mensagem ?? "junior";
//resultado retornado mauricio |
Referência: 1.6
Verificando se o valor inteiro é null
int? numero = null; int var = numero ?? 52;
//resultado retornado 52 |
Referência 1.7
int? numero = 1; int var = numero ?? 52;
//resultado retornado 1 |
Referência: 1.8
No exemplo (1.9) ele já converte o int? automaticamente.
int? numero = 1; int? var = numero ?? 52;
//resultado retornado 1 |
Referência: 1.9
Bom, chego ao final deste breve artigo. Espero que vocês tenham gostado e aprendido.
Qualquer dúvida, favor entrar em contato.
Mauricio Junior
Site: www.mauriciojunior.org
Comunidade: www.aspneti.com ou www.aspneti.com.br