Estoy tratando de encontrar una forma de verificar y ver si el valor de un objeto dado es igual a su valor predeterminado. He mirado alrededor y llegar a esto:Verifique si un objeto dado (referencia o tipo de valor) es igual a su valor predeterminado
public static bool IsNullOrDefault<T>(T argument)
{
if (argument is ValueType || argument != null)
{
return object.Equals(argument, default(T));
}
return true;
}
El problema que estoy teniendo es que yo quiero llamarlo así:
object o = 0;
bool b = Utility.Utility.IsNullOrDefault(o);
Sí o es un objeto, pero quiero para hacer que descubra el tipo base y verifique el valor predeterminado de eso. El tipo base, en este caso, es un número entero y quiero saber en este caso si el valor es igual a predeterminado (int), no predeterminado (objeto).
Estoy empezando a pensar que esto podría no ser posible.
Por qué no llamarlo como var o = 0; ? – Jethro
No puedo porque obtengo el valor del método 'GetValue' en' PropertyInfo' que solo devuelve un 'object'. – Brian
posible duplicado de [La forma más eficaz de comprobar si un objeto es un tipo de valor] (http://stackoverflow.com/questions/5748661/most-efficient-way-to-check-if-an-object-is-a -value-type) – nawfal