Tak więc, wykonuję wiele operacji na bazach danych w aplikacji - i istnieje kilka możliwych wartości zwracanych przez mój system buforowania. Może zwrócić wartość null, może zwrócić wartość domyślną (typ) lub zwrócić nieprawidłowy obiekt (przez nieprawidłowy obiekt, tzn. Jeden z niepoprawnymi właściwościami/wartościami). Chcę utworzyć metodę rozszerzenia, aby wszystkie te kontrole dla mnie tak:Metoda sprawdzania wartości Null sprawdzająca
public static bool Valid<T> (this T obj) where T: class
{
if (obj == null)
return false;
else if (obj == default(T))
return false;
//Other class checks here
else
return true;
}
Problem polega na tym, mój kompilator mówi mi, że if (obj == default(T))
zawsze będzie fałszywa.
Dlaczego tak jest?
Czy zawiera błąd lub ostrzeżenie kompilatora. Nie dostaję żadnego. kompiluje się dobrze. –
@GregB. To prawdopodobnie 'resharper', który daje mu wskazówkę ... – gdoron
@GregB tak, mam resharper. – caesay