Usuário com melhor resposta
Descobrir se 0 é diferente de 0

Pergunta
-
Quando criamos um objeto onde exista atributos do tipo inteiro, boolean, datetime, entre outros
um valor default é setado, e gostaria de saber se temos como descobrir se o valor do atributo do objeto
é o valor default ou o valor que eu setei segue um exemplo da minha duvida.
class pessoa
{
public int id { get; set; }
public int idade { get; set; }
public string nome { get; set; }
public string sobreNome { get; set; }
}public static void Main()
{
pessoa p = new pessoa();
p.id = 0;
p.nome = "";
if (p.id == p.idade)
Console.Write("0 == 0");
if(p.nome.Equals(p.sobreNome) )
Console.Write("empty == empty");}
Com o exemplo vamos ver que o atributo "id" que setei o valor 0 (zero) é igual ao atributo "idade" que não foi setado valor.
Os atributos "String" não ocorre este problema pois não é setado um valor default portanto fica null;
desde já agradeço.
- Editado Edson Fiorese quinta-feira, 23 de fevereiro de 2012 13:01
Respostas
-
Olá Edson já que vc quer fazer uma simples comparação de valor default com um valor setado na sua propriedade, eu indico que crie sua classe de entidade como esta abaixo
class pessoa
{
public int? id { get; set; }
public int? idade { get; set; }
public string? nome { get; set; }
public string? sobreNome { get; set; }
}Assim vc pode comparar se o valor é nulo que seria o valor padrão.
Exp;
pessoa objPessoa = new pessoa();
if(objPessoa.id == null)
Console.Write("id é nulo");
else
Console.Write("id = " + objPessoa.id.value.toString());
- Marcado como Resposta Edson Fiorese quinta-feira, 23 de fevereiro de 2012 13:34
Todas as Respostas
-
Olá Edson já que vc quer fazer uma simples comparação de valor default com um valor setado na sua propriedade, eu indico que crie sua classe de entidade como esta abaixo
class pessoa
{
public int? id { get; set; }
public int? idade { get; set; }
public string? nome { get; set; }
public string? sobreNome { get; set; }
}Assim vc pode comparar se o valor é nulo que seria o valor padrão.
Exp;
pessoa objPessoa = new pessoa();
if(objPessoa.id == null)
Console.Write("id é nulo");
else
Console.Write("id = " + objPessoa.id.value.toString());
- Marcado como Resposta Edson Fiorese quinta-feira, 23 de fevereiro de 2012 13:34
-
Olá Edson
Quando falamos de INT o valor default é 0,
no seu código vc declarou algumas variáveis com os seus respectivos tipos.
como é default o INT está(ZERADO) sempre quando vc inicia um aplicação.
Está comparação
if (p.id == p.idade) sempre será verdadeira pois os valores vão sempre esta zerados, no caso de ums String ela já se inicia Nula no caso sem nenhum valor.
class pessoa
{
public int id { get; set; }
public int idade { get; set; }
public string nome { get; set; }
public string sobreNome { get; set; }
}
public static void Main()
{
pessoa p = new pessoa();
p.id = 0;
p.nome = "";
if (p.id == p.idade)
Console.Write("0 == 0");
if(p.nome.Equals(p.sobreNome) )
Console.Write("empty == empty");
}Caso a resposta tenha ajudado favor marcar como respondida.
- Sugerido como Resposta Renan Buzzi quinta-feira, 23 de fevereiro de 2012 15:57
-