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 = myObject
cấ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();
MyClass
nên cung cấp một public static readonly
thành viên của một Empty
giá trị thuộc loại. Xem String.Empty
trên MSDN .
??=
nhà điều hành?