1. Các trường hợp cơ bản
Nếu là coder thì ít nhất 1 lần các bạn đã gặp NullPointerException. Việc kiểm tra giá trị null thông thường sẽ được xử lý như dưới đây
Trước khi gán giá trị cho 1 biến khác:
1 2 3 4 5 6 7 |
if (a != null) { variable_b = a; } else { variable_b = "default"; } Hoặc variable_b = a != null ? a : "default"; |
Trước khi kiểm tra giá trị của 1 property bên trong object:
1 2 3 |
if (a != null && a.propertyX == "gia_tri_x") { //DO SOMETHING } |
2. Sử dụng null coalescing assignment
Khi sử dụng null coalescing assignment code sẽ ngắn gọn hơn rất nhiều. Ví dụ như dưới đây
Khi muốn gán giá trị cho 1 biến khác:
1 |
variable_b = a ?? "default" |
Khi muốn kiểm tra giá trị của 1 property bên trong object:
1 2 3 |
if ( a?.propertyX == "gia_tri_x"){ //DO SOMETHING } |
Đây là ứng dụng mình rất thích của null coalescing assignment. Nếu như a null thì coi như câu lệnh if sẽ được bỏ qua tránh dc nullpointerException.
1 ví dụ khác khi sử dụng kết hợp nhiều lần null coalescing
1 2 |
return a?[0]?.propertyX ?? "default" //nếu a null hoặc object ở vị trí a[0] null hoặc property của object a[0] null thì sẽ trả về "default" |
Ngoài ra từ C# 8 còn có thêm 1 cách sử dụng nữa như sau
1 2 3 4 5 6 7 8 |
// Khi không dùng null coalescing if (variable is null) { variable = expression; } //khi dùng coalescing variable ??= expression; |