if condition with nullable

前端 未结 10 1075
抹茶落季
抹茶落季 2021-01-02 10:20

There is a lot of syntax sugar with Nullable like those:

int? parsed to Nullable

int? x = null
   if (x != null) // Parsed          


        
10条回答
  •  说谎
    说谎 (楼主)
    2021-01-02 10:52

    It's the most obvious usage for Nullable

    Your "obvious" behaviour leads to many inobvious behaviours.

    If

    if(x)
    

    is treated as false when x is null, then what should happen to

    if(!x)
    

    ? !x is also null when x is null, and therefore will be treated as false also! Does it not seem strange that you cannot reverse the behaviour of a conditional with an inversion?

    What about

    if (x | !x)
    

    Surely that should always be true, but if x is null then the whole expression is null, and therefore false.

    It is better to avoid these inobvious situations by simply making them all illegal. C# is a "make the user say what they mean unambiguously" language.

    I believe that VB has the behaviour you want. You might consider switching to VB if this is the sort of thing you like.

提交回复
热议问题