One interesting point: theoretically you can write something in vb.net, compile to MIL, then decompile back to C# source. Lose your comments of course. Anybody tried it?
I haven't done it myself, but it is possible from what I have read. There are people comming out with obfuscators to help solve this problem. http://www.preemptive.com/dotfuscator/index.html

We are all now like the Java programmers that have to find tricks to keep the code from getting out.