Yes, you are correct.... I have broken down the IL compiled code with a simple project of my own. I used only two lines of code to compare and compiled it both ways, once with = 'True' and the other without it. When compiled through the IL it is the same, therefore = 'True' is dropped and the compiler dosn't see it.
I stand corrected with the performance hit, in .NET anyways. Basically it dosn't matter if you put it there or not it never get's compiled. So
If CheckBox1.checked = True then....
and
If CheckBox1.checked then....
will both become compiled the same way.
With that said, you said "CheckBox.checked? What the hell does that mean? is what the compiler will be thinking if the good people at microsoft hadn't told it what to do."
That is not true. Booleans are compiled into numbers, basically -1 being true and 0 being false, or any non 0 number being true, 0 always being false. With this in mind any function returning a boolean is only returning -1 or 0 to the compiler.
I wrote this post over b/c i went on a tangent thinking I was right with the performance hit when I was only half right. Instead I learned a lil somthing new myself, which I am thankful for, and I hope maybe I have still brought some nice information to the table. Here are some links to understand the MS view point on booleans and another site breaking booleans down into charts. Also, check out the information for Short Circuiting to see how that works. E-mail or msg me if you would like the few simple steps to view the IL compiled code. Not too hard to follow.
MS break on booleans..
http://msdn2.microsoft.com/en-us/library/wts33hb3.aspx
Great Great few pages to learn tons about booleans and how computers use them
http://computer.howstuffworks.com/boolean.htm
Good page on with some Short Circuiting info...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcn7/html/vaconlogicaloperators.asp