Xem dòng mã bên dưới:Tại sao ArgumentNullException? Tại sao không System.NullReferenceException?
DataTable [] _tables = null;
// Throws System.NullReferenceException
_tables.GetType();
// Throws System.ArgumentNullException
_tables.Count();
Trong dòng mã này tôi có _tables
tham khảo và cố gắng để truy cập vào hệ thống của nó xác định chức năng GetType()
và Count()
, cả hai ném ngoại lệ nhưng tại sao .Count()
ném System.ArgumentNullException
, vì chúng ta có cùng một giá trị để tham khảo là null
?
có thể trùng lặp của [ArgumentNullException hoặc NullReferenceException từ phương pháp mở rộng?] (Http://stackoverflow.com/questions/463302/argumentnullexception-or-nullreferenceexception-from-extension-method) –
@ 280Z28 Tôi nghĩ trong hàng đợi đó, Patrik Hägne yêu cầu "loại ngoại lệ tốt nhất để ném khi phương thức mở rộng được gọi trên một phiên bản trống" ... –
http://blog.mischel.com/2013/05/16/null-parameters-in-extension-methods/ –