Hãy xem xét kịch bản điển hình sau:
if(myObject == null) {
myObject = new myClass();
}
Tôi đang tự hỏi người ta nghĩ gì về sự thay thế sau bằng cách sử dụng toán tử hợp nhất null:
myObject = myObject ?? new myClass();
Tôi không chắc liệu tôi có nên sử dụng mẫu thứ hai không. Nó có vẻ như một tốc ký tốt đẹp, nhưng myObject = myObjectcấu trúc lúc đầu có vẻ như có thể là một chút mùi mã.
Đây có phải là một điều hợp lý để làm, hoặc có một tốc ký tốt hơn mà tôi đang thiếu? Hoặc có thể, "Đó là ba dòng, vượt qua nó!"?
Chỉnh sửa: Như đã được đề cập, có lẽ gọi đây là một kịch bản điển hình là một cái gì đó quá lời. Tôi thường thấy rằng tôi gặp phải tình huống này khi tôi truy xuất một thực thể từ cơ sở dữ liệu có thuộc tính loại tham chiếu con có thể hoặc không thể được tạo ra:
myClass myObject = myClassService.getById(id);
myObject.myChildObject = myObject.myChildObject ?? new myChildClass();
MyClassnên cung cấp một public static readonlythành viên của một Emptygiá trị thuộc loại. Xem String.Emptytrên MSDN .
??=nhà điều hành?