Back in the day when I did most of my work in C and C++, as a matter of course, I would manually apply [deMorgan's theorem](http://en.wikipedia.org/wiki/De_Morgan_theorem) to optimize any non-trivial boolean expressions.

Is it useful to do this in C# or does the optimizer render this unnecessary?