Search code examples
c#coding-style

Why does one often see "null != variable" instead of "variable != null" in C#?


In c#, is there any difference in the excecution speed for the order in which you state the condition?

if (null != variable) ...
if (variable != null) ...

Since recently, I saw the first one quite often, and it caught my attention since I was used to the second one.

If there is no difference, what is the advantage of the first one?


Solution

  • It's a hold-over from C. In C, if you either use a bad compiler or don't have warnings turned up high enough, this will compile with no warning whatsoever (and is indeed legal code):

    // Probably wrong
    if (x = 5)
    

    when you actually probably meant

    if (x == 5)
    

    You can work around this in C by doing:

    if (5 == x)
    

    A typo here will result in invalid code.

    Now, in C# this is all piffle. Unless you're comparing two Boolean values (which is rare, IME) you can write the more readable code, as an "if" statement requires a Boolean expression to start with, and the type of "x=5" is Int32, not Boolean.

    I suggest that if you see this in your colleagues' code, you educate them in the ways of modern languages, and suggest they write the more natural form in future.