Possible Duplicate:
Most common or vicious mistakes in C# development for experienced C++ programmers
I’m a long time C++ programmer about to start working on C# projects.
What are some conceptual changes to be aware of, and most importantly, what should I avoid doing in C# that I would normally do in C++? What bad habits do C++ programmers bring to C# that they should lose?
I have a list of C# books I intend to read. I’d like to augment that with experiences from other programmers that have made this same transition because I’ll probably tend to make the same errors they did; I’d like to prevent that before it happens.
Just one example:
In C++ there is no difference between a struct and a class. Over the years this has led groups and individuals to define their own rules for using one over the other.
In C# there is a concrete difference. A struct is a value type and a class is a reference type.
When C++ programmers bring thier old, arbitrary class/struct definitions to C#, unexpected things tend to happen.
Here is a fairly good read for C++ programmers moving to C#:
http://msdn.microsoft.com/en-us/magazine/cc301520.aspx