This is one of those trivia topics about the language features.

In C you could do
Code:
if (obj) {...}
In C# you have to do
Code:
if (obj != null) {...}
The funny thing is that C is a more object oriented style approach. It practically uses an overloaded if() when C# has an if for only logical operations and bool values (not for pointers and references).

If there had to be a separation between bool and references, I would choose to have the bool variables have a == true in an if. Makes more sense for me. You read if(obj) as "if this object (exists)" rather than "if this obj is true". And if (obj != null) would read "if the value of this obj is not equal to null" mixing objects with values.

What do you think? Except the obvious answer "I have better things to do in my life"