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 Junior



Olá 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

Baixar código.

Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org