Tôi thực sự đang cố gắng tìm ra các phương pháp hay nhất để sử dụng lại mã có thể dễ dàng được gỡ lỗi. Tôi đã chạy vào một thực tế phổ biến giữa các nhà phát triển mà tôi chưa hiểu lắm.Kiểm tra Null trong Constructor
public MyConstructor(Object myObject)
{
if (myObject == null)
throw new ArgumentNullException("myObject is null.");
_myObject = myObject;
}
Có vẻ như không cần thiết để thực hiện kiểm tra này. Nhưng tôi nghĩ rằng đó là bởi vì tôi không hoàn toàn hiểu những lợi ích của việc kiểm tra này là gì. Nó có vẻ như một ngoại lệ tham chiếu null sẽ được ném anyway? Tôi có lẽ sai, thực sự muốn nghe một số suy nghĩ về nó.
Cảm ơn bạn.
Những gì bạn đang làm là không cần thiết, bạn có thể kiểm tra để đảm bảo trước khi bạn tham chiếu đối tượng, rằng nó không phải là null. Tất nhiên xác nhận những gì bạn sẽ được sử dụng khi đối tượng của bạn là intialized là một cách tiếp cận rất hợp lệ. –
@Ramhound - đây là một cách tiếp cận phổ biến khi sử dụng các khung công tác DI như StructureMap, nơi bạn không nhất thiết có quyền kiểm soát trực tiếp những gì được truyền vào hàm tạo. Nếu lớp của bạn là vô ích nếu không có 'myObject' và đây là nơi duy nhất để khởi tạo nó thì sẽ có ý nghĩa khi ném các ngoại lệ càng sớm càng tốt để bạn biết về chúng. Trong một ứng dụng web chạy dài, bạn có thể không biết về vấn đề này cho đến khi ai đó xảy ra gọi một phương thức yêu cầu đối tượng. –