Thứ Hai, 23 tháng 7, 2012

Toán tử ?? trong C#

Toán tử ?? được dùng để định nghĩa giá trị mặc định trả về nếu giá trị của biến là null.

Xem ví dụ sau:
  1. string input = "test@hanhtranglaptrinh.com";  
  2. string test = input;  
  3. test = test.Replace("@","[a còng]");  
  4. // giá trị của test lúc này là: test[a còng]hanhtranglaptrinh.com  
Chuyện gì sẽ xảy ra nếu gán giá trị input bằng null.
  1. string input = null;  
  2. string test = input;  
  3. test = test.Replace("@","[a còng]");  
  4. // sẽ có exception khi gọi phương thức replace vì lúc này biến test cũng bằng null
Sử dụng toán tử ?? để gắn giá trị mặc định cho biến test khi biến input bằng null. Lúc này biến test sẽ được gắn giá trị mặc định nên đoạn code vẫn chạy bình thường.
  1. string input = null;  
  2. string test = input ?? "giá trị mặc định";  
  3. test = test.Replace("@","[a còng]");  
Đoạn code trên tương đương với:
  1. string input = null;  
  2. string test;  
  3. if (input == null)  
  4.     test = "giá trị mặc định";  
  5. else  
  6.     test = input;  
  7. test = test.Replace("@""[a còng]");  
Hoặc tương đương với cách sử dụng toán tử ?: như sau:
  1. string input = null;  
  2. string test = (input == null) ? "giá trị mặc định" : input;  
  3. test = test.Replace("@""[a còng]");  
Xem thêm: Toán tử ?: trong C#

Không có nhận xét nào :

Đăng nhận xét