Yakın zamanda bir merakı fark ettim (en azından benim için). null-coalescing operator
'un herhangi bir matematiksel işlemden önce önceliği alacağını sanıyordum ama açıkçası yanılıyordum.Null birleştirme işlecini neden parantez içine koymam gerekiyor?
double? previousValue = null;
double? v1 = 1 + previousValue ?? 0;
double? v2 = 1 + (previousValue ?? 0);
Ancak v2.Value
(istenen) olan v1.Value
ise 1 yine 0. neden: İki değişkenler aşağıdaki ucunda aynı değere sahip olacaktır düşünce? null coalescing operatör aslında nispeten düşük önceliğe sahiptir:
yardımcı olabilir: http://en.csharp-online.net/ECMA-334%3a_14.2.1_Operator_precedence_and_associativity da http : //stackoverflow.com/questions/511093/what-is-the-operator-precedence-of-c-sharp-null-coalescing-operator – Ric