Tôi đang cố gắng tìm ra những ưu điểm và nhược điểm của một phương thức có nhiều giá trị kết quả.Giá trị trả về thực hành tốt nhất so với ngoại lệ và Enum
Ví dụ: tôi đang sử dụng phương thức đăng nhập. Nếu thông tin đăng nhập thành công, thông tin đăng nhập sẽ vượt qua, nếu không tôi cần biết tại sao nó không thành công.
1. Trở đúng hay sai (Không đủ thông tin)
bool Login(string user, string password);
2. Trở thành sự thật, nếu nó đã thành công, nếu không ném một ngoại lệ
public class UnknownUserException : Exception { }
public class WrongPasswordException : Exception { }
bool Login(string user, string password);
3. Không trả lại gì cả. Ném một ngoại lệ, nếu nó đã không thành công
public class UnknownUserException : Exception { }
public class WrongPasswordException : Exception { }
void Login(string user, string password);
4. Return một giá trị enum
enum LoginResult
{
Successful
UnknownUser,
WrongPassword
}
LoginResult Login(string user, string password);
"Đăng nhập" chỉ là một ví dụ như vậy. Tôi muốn biết những ưu điểm và nhược điểm của việc triển khai khác nhau là gì, và trong trường hợp nào thì chúng ít nhiều thích hợp.
1 và 2 là rõ ràng không đáng được quan tâm. # 3 là trong tĩnh mạch của cách mọi thứ thường được thực hiện, nhưng người duy nhất được trang bị để nhận ra rằng có lẽ # 4 là thích hợp hơn trong trường hợp của bạn là bạn. – Jon
API là đồng bộ hoặc không đồng bộ? –
đồng bộ, xin lỗi :) – Jan