khi triển khai/sử dụng các phương thức trả về hoặc làm việc với các đối tượng của đối tượng, cách tiếp cận thanh lịch nhất để kiểm tra tham số chức năng là gì?Cách tốt nhất để kiểm tra tham số chức năng: Kiểm tra null hoặc try/catch
Cách gọi:
someType GetSomething(object x)
{
if (x == null) {
return;
}
//
// Code...
//
}
hoặc tốt hơn:
someType GetSomething(object x)
{
if (x == null) {
throw new ArgumentNullException("x");
}
//
// Code...
//
}
Calling Phương pháp:
void SomeOtherMethod()
{
someType myType = GetSomething(someObject);
if (someType == null) {
return;
}
}
hoặc tốt hơn:
void SomeOtherMethod()
{
try {
someType myType = GetSomething(someObject);
} catch (ArgumentNullException) {
}
}
Khi duyệt qua các câu hỏi tương tự, lý do không sử dụng try/catch là hiệu suất. Nhưng IMHO thử-catch chỉ trông tốt hơn :).
Vì vậy, cách nào là "thanh lịch" hơn?
Có chức năng sẽ đánh giá đầu vào không null và trả về giá trị null cho đầu vào rỗng, thường là mẫu hữu ích. Trong một số trường hợp, Mô hình đối tượng Null có thể đẹp hơn, nhưng có thể khó thực hiện với các thuốc generic. – supercat