Như bao giờ hết, C# đặc điểm kỹ thuật là nơi tốt nhất để đi cho các loại điều này.
Từ phần 7,13 của (tôi nhấn mạnh) C# 5 specification:
Một rỗng coalescing biểu hiện của hình thức a ?? b
đòi hỏi a
là của một loại nullable hoặc kiểu tham chiếu. Nếu a
là không null, kết quả của a ?? b
là a
; nếu không, kết quả là b
. Hoạt động chỉ đánh giá b
nếu a
không có giá trị.
Có thêm chi tiết xung quanh khi thực hiện bất kỳ chuyển đổi nào và hành vi chính xác, nhưng đó là điểm chính được đưa ra cho câu hỏi của bạn. Cũng cần lưu ý rằng toán tử kết hợp không đúng là kết hợp đúng, do đó, a ?? b ?? c
được đánh giá là a ?? (b ?? c)
... có nghĩa là nó sẽ chỉ đánh giá c
nếu cả haia
và b
là rỗng.
Nguồn
2014-09-24 19:01:30
Tự mình thử: 'string s =" A "; Console.WriteLine ("Hello" ?? a.Substring (10)); ' – phoog