Gần đây tôi đã nhận thấy sự tò mò (ít nhất là đối với tôi). Tôi nghĩ rằng các null-coalescing operator
sẽ được ưu tiên hơn bất kỳ hoạt động toán học nhưng rõ ràng là tôi đã sai. Tôi nghĩ sau hai biến sẽ có cùng giá trị ở cuối:Tại sao tôi cần phải đặt toán tử null-coalescing trong ngoặc?
double? previousValue = null;
double? v1 = 1 + previousValue ?? 0;
double? v2 = 1 + (previousValue ?? 0);
Nhưng v2.Value
được (mong muốn) 1 khi v1.Value
vẫn là 0. Tại sao?
có thể trợ giúp: http://en.csharp-online.net/ECMA-334%3a_14.2.1_Operator_precedence_and_associativity cũng http : //stackoverflow.com/questions/511093/what-is-the-operator-precedence-of-c-sharp-null-coalescing-operator – Ric