The Syntax of C# look very familiar if you know Java. In fact, it was rather easy for me to start programming in C# as I already knew Java a bit. But there are slight differences under the hood that can cost you a lot of time while debugging.
For once, while Java is a portable language, C# clearly is not - and not only because Microsoft only supports the .Net platform on Windows. While in Java everything uses big endian, C# uses whatever the underlying architecture supports. This means, e.g., little endian on x86 and big endian on PowerPC. So if you are doing bit manipulation in integers, you better know what you are doing - and do not assume, as I did, that C# behaves just like Java only because it looks like Java.
For once, while Java is a portable language, C# clearly is not - and not only because Microsoft only supports the .Net platform on Windows. While in Java everything uses big endian, C# uses whatever the underlying architecture supports. This means, e.g., little endian on x86 and big endian on PowerPC. So if you are doing bit manipulation in integers, you better know what you are doing - and do not assume, as I did, that C# behaves just like Java only because it looks like Java.