Próbuję znaleźć sposób sprawdzenia i sprawdzić, czy wartość danego obiektu jest równa wartości domyślnej. Mam rozejrzał się i wymyślić to:Sprawdź, czy dany obiekt (typ odniesienia lub wartość) jest równy jego domyślnemu
public static bool IsNullOrDefault<T>(T argument)
{
if (argument is ValueType || argument != null)
{
return object.Equals(argument, default(T));
}
return true;
}
Problem mam jest, że chcę, aby nazwać tak:
object o = 0;
bool b = Utility.Utility.IsNullOrDefault(o);
Tak o to obiekt, ale chcę aby ustalić typ bazy i sprawdzić domyślną wartość tego. Typ bazowy, w tym przypadku, jest liczbą całkowitą i chcę wiedzieć w tym przypadku, czy wartość jest równa wartości domyślnej (int), a nie domyślnej (obiekt).
Zaczynam myśleć, że to może nie być możliwe.
Dlaczego nie nazwać jak var o = 0; ? – Jethro
Nie mogę, ponieważ otrzymuję wartość z metody 'GetValue' w' PropertyInfo', która zwraca tylko 'object'. – Brian
możliwy duplikat [Najbardziej skuteczny sposób sprawdzenia, czy obiekt jest typem wartości] (http://stackoverflow.com/questions/5748661/most-efficient-way-to-check-if-an-object-is-a -wartość-typ) – nawfal