Java uses bytecode. C #, although it uses IL as an intermediate step, is always compiled into native code. IL is never interpreted directly for execution as Java bytecode. You can even precompile IL before distribution if you really want to (hint: performance is usually better in the long run if you don't).
, # , . winforms , , , # - . ; , . # (, , , ), .
, () .
# IL. . , JIT- . , , . JIT, , .
, , , , . , .
:
, , , , . , . .
. , , - . , . : , , . , , , . , .
, warez, . , . .
(imo) , . , .