30/09/2018, 18:16

Có nên luôn kiểm tra parameter của method là khác NULL?

Một method có parameter là các object, mình có nên phải luôn kiểm tra là các parameter này khác null hay ko ?

Kiểu như vầy

public doSomething(Object a, Object b){
   if(a != null && b!=null){
   // do some thing;
   }
}

Hoặc kiểu như này

public doSomething(Object a, Object b){
       if(a == null || b == null){
          throw new IlegalException("a and b can not be null");
       }
       // do something;
}
Cương Nguyễn viết 20:32 ngày 30/09/2018

có, với những method là public.
trong nhiều trường hợp bạn chắc chắn là nó không bao giờ null và là hàm private thì có thể không cần check.

Khiem Nguyen viết 20:26 ngày 30/09/2018

tùy trường hợp ta mới cần kiểm tra. ví dụ nếu bạn cần lấy thông tin của 1 record dựa trên ID thì lúc này chắc chắn bạn sẽ cần phải kiểm tra việc parameter là ID có bị null hay không vì lúc này nếu id là null thì bạn sẽ không thể lấy đc những giá trị của record đó

public doSomething(int id)
{
    if (id == null)
    {
         // return a error message 
    }
    else if (id != null)
    {
        // get detail
    }
}

Còn ở trường hợp nếu bạn muốn thêm một record, nhưng record này lại cho phép lưu vào một giá trị null thì lúc này bạn không cần phải kiểm tra parameter đó có null hay không.

Interns viết 20:27 ngày 30/09/2018

Cho mình hỏi là tại sao id là kiểu int mà mình có thể so sánh id==null phải là id==0 chứ nhỉ

Võ Anh Kiệt viết 20:16 ngày 30/09/2018

Code sai đó bạn . kiểu in là kiểu nguyên thủy không bị null, và nó có giá trị khởi tạo đầu tiên luôn

Khiem Nguyen viết 20:20 ngày 30/09/2018

giá trị mặc định của kiểu int là 0 nhưng ở C# thì bạn có thể set giá trị cho kiểu int là null bằng cách như sau

int? a = null;
//or
Nullable<int> a = null;

Vì vậy việc kiểm tra 1 giá trị null ở đây là hợp lệ.

Bài liên quan
0