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)
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