We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Championed issue: dotnet/csharplang#4465 Spec: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-10.0/improved-definite-assignment.md#specification
??
<null-conditional> ?? expr_second
? :
expr_cond ? expr_true : expr_false
==
<null-conditional> == <null-constant>
<null-conditional> == <not-null>
expr == <constant-true>
expr == <constant-false>
!=
Meet()
is
<null-conditional> is <not-null-only-matching-pattern>
<null-conditional> is <null-only-matching-pattern>
<null-conditional> is <true-only-matching-pattern>
<null-conditional> is <false-only-matching-pattern>
Needs some discussion:
switch
>
x != null && x?.TryGetValue(out y)
x?.TryGetValue(out y) == true
Status
Championed issue: dotnet/csharplang#4465
Spec: https://github.com/dotnet/csharplang/blob/main/proposals/csharp-10.0/improved-definite-assignment.md#specification
??<null-conditional> ?? expr_second? :expr_cond ? expr_true : expr_falsecan result in conditional state==<null-conditional> == <null-constant><null-conditional> == <not-null>expr == <constant-true>expr == <constant-false>!===operatorsMeet()between==/!=operands is soundis<null-conditional> is <not-null-only-matching-pattern><null-conditional> is <null-only-matching-pattern><null-conditional> is <true-only-matching-pattern><null-conditional> is <false-only-matching-pattern>Needs some discussion:
switch>, ...)Productivity
x != null && x?.TryGetValue(out y)tox?.TryGetValue(out y) == true