Coalescing Operador C# ?? null


por Mauricio Junior em 1/1/2011 0

 

Olá pessoal, meu nome é Mauricio Junior. Estou disposto a mostrar uma nova maneira de utilizar um novo operador C#.NET, cujo 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.


Livros publicados



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. 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á havia uma instancia criada, caso não houvesse 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 instancia e chamava o método publico. 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 do 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


voltar   comente  subir

 
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. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.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



Comentários:

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Inside Xbox Live Game
Usando themes ASP.NET 2.0 (Parte 1)
Append Data Bound Items
Abrindo Janela de Forma Modal
Windows Phone 7, nada como aprender vendo
Windows Mobile Phone
Criando XML a partir do DataSet Tipado com Visual Studio.NET 2005 – Parte I
Projeto Natal é mostrado para a mídia
Aplicativo para Windows Phone 7 começa
Vídeo - Teste do Windows 7 RC
Vídeo - Tecla de Atalho
Dicas para programar melhor
Teclas de atalho - Visual Studio .NET 2005
Enviando E-mail com Anexo
Criando TreeView com Visual Studio.NET 2005 (passo 1)
Zune
Gerando Relatório e Exportando para o Excel
101 Exemplos de Linq
iSecurity Password Free
Upload sempre NULL
Documento padrão de desenvolvimento
IsAlphaNumeric
Tudo Sobre DataGrid - (ASP.NET e C#)
Vídeo: Série Atlas.NET - Parte I
Emulando o Windows Phone 7 em seu celular
Vídeo - Microsoft Surface: The Power
Promoções de livros móveis .NET
DateDiff com intervalos escolhidos por você
Moving to Visual Studio 2010 e-Book
Nem tudo é o que parece!
My Tracks
Importação e Comunicação entre Sistemas
Máscara valor que funciona
Windows Forms Application – Alterando Arquivo de Configuração Dinamicamente
Calcular Média de Combustível