Tutorial :What is the official marketing name for C# 4?


What is the official marketing name for C# 4?

  • Apress writes "Visual C# 2010 Recipes"
  • Apress also writes "Pro C# 2010 and the .NET 4 platform"
  • O'Reilly also writes "Microsoft Visual C# 2010"
  • Jon Skeet and Scott Hanselman both write C# 4
  • yet Dino Esposito writes C# 4.0
  • this MSDN page is entitled Visual C# 2010 Samples, refers to C# 4.0, and people writing in the comments refer to both C# 4 and C# 4.0

If we are going to publish training material about C# 4, what term should we use?


  • Microsoft Visual C# 2010 is the C# specific part of the integrated development environment Microsoft Visual Studio 2010.

  • C# 4.0 is the language.

  • Microsoft .NET Framework 4.0 is the framework.

It is common to shorten 4.0 to 4.

This is a response to Adrian Grigores comment "The .NET version does determine the syntax and semantics of the C# language".

There are (at least) three partially independent version numbers - the .NET Framework version, the Common Language Runtime (CLR) version, and the C# version (see this StackOverflow question for a quite comprehensive list of Framework and CLR versions).

The C# version determines what language features are available. Language features are based on .NET Framework features - the included framework assemblies and CLR version. Finally every .NET Framework versions includes a specific CLR version that basically determines what is valid Common Intermediate Language (CIL) code and how it must be interpreted. Some examples.

C# 3.0 introduces automatic properties. This feature is build into the compiler and does not rely on new functionalities in the .NET Framework assemblies or even the Common Language Runtime (the .NET Framework 3.0 still contains the CLR 2.0). Therefore it is possible to build an application using automatic properties and targeting the .NET Framework 2.0 (maybe even 1.0 and 1.1).

C# 3.0 introduces LINQ. This feature is mainly build into the compiler but partly relies on assemblies new in the .NET Framework 3.0. LINQ to Objects for example relies on the new System.Core.dll containing the Enumerable class. It is however possible to fake this dependencies and therefore use LINQ to Objects with the .NET Framework 2.0.

C# 2.0 introduces generics. This feature relies on extension of the CIL in the CLR 2.0. Therefore it is not possible to use generics with the .NET Framework 1.0 and 1.1.


I'd go with C# 4.0

The first and third book you quoted refers to the visual studio subproduct (Visual C#), That's why they are using 2010 as the "version" number.

So since you you are going to write an article about C#, not Visual Studio, It's either 4 or 4.0. And since '4.0' makes it clearer that you are talking about a version number, C# 4.0 seems like the best choice to me.


The official name of the language is Visual C# <version>

I'll look for a reference .


The ECMA-334 standard consistently calls it C#. So that is the name of the language.

Microsoft calls their implementation Visual C#. The other implementations (that I know of) are Mono C# and Rotor C#

And while the IDE is called Visual Studio <versionyear>, I think C# 2010 is a definite misnomer. But that doesn't lower its marketing value.


While the real technical name is C# 4.0 for the latest C# version, 2010 is the IDE's version.

For marketing purposes, 2010 might be used instead of 4.0, because people new to the language might be more tempted to the year number for it indicates that the book is tackling the technology with its recent update.


I'd say the language is C# 4.0, the tool is Visual C# 2010 (like Visual C# 2010 Express).


I would opt for C#4.0.

In the past you had

  • .NET 1.0 (C# 1.0)
  • .NET 1.1 (C# 1.0)
  • .NET 2.0 (C# 2.0)
  • .NET 3.0 (C# 2.0)
  • .NET 3.5 (C# 3.0)

and now

  • .NET 4.0 (C# 4.0)


The language is C# 4.0. The product is Visual C# 2010.

C:\Users\pminaev>csc /?

Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1

and then opening "%ProgramFiles%\Microsoft Visual Studio 10.0\VC#\Specifications\1033\CSharp Language Specification.doc", on the very first page

C# Language Specification

Version 4.0


IMHO i would call it by it's version.. so C# 4.0. Previous Versions were called by the same like C# 3.0 etc.



Since C# 4.0 came out and currently can only be developed in Visual Studio 2010 (and no other version of VS), people seem to use both terms interchangeably.

Personally, I would rather see C# 4.0, as that is the version of the language, not of the IDE.


Using C# 4.0 may be the official name, but especially if your book is targeted to those 'less in the know', than adding 2010 and whatnot may let people know which version of Visual Studio you are talking about. If it's for professionals, you'll have no problem throwing around C# 4, but for beginners, saying C# 2010 will tell them the IDE they need to use. It's clearer, though not official.

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Next Post »