tags:

views:

305

answers:

8
+1  Q: 

from C++ to C#

What are good c++ to C# articles/tutorial or books? I am reading http://msdn.microsoft.com/en-us/magazine/cc301520.aspx and will read http://andymcm.com/csharpfaq.htm and http://www.ondotnet.com/pub/a/dotnet/2002/02/11/csharp_traps.html afterwards. Have any of you read any good books for ppl who have a strong understanding of programming && || C++ on the C# language (and libraries)?

+2  A: 

Absolutely the best place to find information about C# is MSDN.

I recommend you follow the C# tutorials listed here: C# Tutorials on MSDN

I was also a C++ dev before I started doing C#. Those tutorials will get you up to speed.

Read about .NET as well.

Also, I forgot to mention the specification:

C# Language Specification on MSDN

It's worth reading through so you know some of the not-so-obvious differences between C# and C++ (for example, structs are pass by value whereas classes are pass by ref), and usage of 'out', 'ref', and other keywords. Just an example :).

Jovan
No, classes aren't passed by reference. References are passed by value - it's a significant difference. Seehttp://pobox.com/~skeet/csharp/parameters.html
Jon Skeet
+1  A: 

It would be helpful to have the C# Language from Microsoft (not ECMA) specification with you to guide you with the syntax changes between C++ & C#.

download C# Version 3.0 Specification (.doc) here

AB Kolan
A link to the full document: http://download.microsoft.com/download/3/8/8/388e7205-bc10-4226-b2a8-75351c669b09/csharp%20language%20specification.doc
Henk Holterman
+2  A: 

I am currently reading Jon Skeet's C# in Depth. It is the best treatment I have seen for C# 2 and 3. If you are an advanced C++ programmer and you have some familiarity with C#, this is the book to take your C# competence to mastery.

Jon provides insights into the evolution of C# and insights into the various new language features. Not just the "hows" but also the "whys". Again, approach it after reading a beginning C# book. It doesn't cover the basic stuff which is covered many times by numerous other C# books.

m-sharp
A: 

I often find that personal experience provides the most insight into language differences. One can read all the theory written about a new programming language, but without experience this doesn't help much.

I'd recommend downloading Microsoft Visual C# Express Edition (http://www.microsoft.com/express/vcsharp/) and trying it out with a few simple programs. Start with "Hello World!" and work your way from there. (I know this can be tedious, but it helps to build a solid grounding in a language you are unfamiliar with). Once you have a solid feeling for the language, you should be able to focus your efforts (and questions) toward more specific language differences.

Rob
A: 

I recommend Accelerated C# book for programmers who's came from C++ and Java Languages.

ecleel
+1  A: 

Personally when I had to learn C# I would type the name of what I was looking for in the C++ term and tack on C#. For example:

std::vector C#

which gave me several pages dedicated to explaining lists and other types in C# that did what that exact code did in C++. Worked fairly well, even for some of the lesser used parts of the STL/Templating library.

X-Istence
A: 

If you're coming from C++, I think the best book to start with is CLR via C#. It will give you both a solid introduction to C# while also acclimating you to life in the CLR. The latter may be more of a stumbling block for someone with a solid C++ background.

JaredPar
A: 

I'll second the suggestion for CLR via C#, it is without doubt one of the de facto books one would expect any competent C# programmer to have read. Also, coming from a C++ background it will answer your questions about how things work in a managed environment.

Granville Barnett