See linia kodu poniżej:Dlaczego ArgumentNullException? Dlaczego nie System.NullReferenceException?
DataTable [] _tables = null;
// Throws System.NullReferenceException
_tables.GetType();
// Throws System.ArgumentNullException
_tables.Count();
w tej linii kodu mam _tables
odniesienia i próbują uzyskać dostęp do swojego systemu definiują funkcje GetType()
i Count()
zarówno wyjątek throw ale dlaczego .Count()
rzuca System.ArgumentNullException
, ponieważ mamy taką samą wartość dla odniesienia, który jest null
?
możliwe duplikat [ArgumentNullException lub NullReferenceException od metody wydłużania?] (Http://stackoverflow.com/questions/463302/argumentnullexception-or-nullreferenceexception-from-extension-method) –
@ 280Z28 myślę, że w tym que Patrik Hägne prosi o "najlepszy typ wyjątku do rzucenia, gdy metoda rozszerzenia wywołała instancję zerową" ... –
http://blog.mischel.com/2013/05/16/null-parameters-in-extension-methods/ –