C# (pronounced see-sharp) is an object-oriented programming language developed by Microsoft as part of their .NET initiative. Microsoft based C# on C++ and the Java programming language. C# was designed to balance power (the C++ influence) with rapid development (the Java influence).

Table of contents
1 Program execution
2 Standardization
3 Example
4 Marketing
5 External links

Program execution

C# does not compile to binary code which can be executed directly by the target computer. Instead, as with Java, it is compiled to an intermediary code which is executed on a virtual machine which is included in the .NET framework. All .NET languages (which includes Visual Basic .NET and Managed C++ as well as C#) compile to this intermediary code called Microsoft Intermediate Language (MSIL). To the casual observer, the resulting program looks like a normal executable and has an ".exe" extension just like a normal application. However, executing the program fails on a computer that does not have the .NET Framework installed.

When the program is executed, the .NET framework compiles the intermediate code into binary code as it is run—just-in-time compilation (JIT). The resulting binary code is stored temporarily (in a memory cache), so if the program uses that portion of code again, the cached version is used. However this is only in effect during the runtime of the program. If a .NET application is run again, this compilation process is done again.

Standardization

Microsoft has submitted C# to the ECMA for formal standardization. In December 2001, ECMA released ECMA-334 C# Language Specification. C# became an ISO standard in 2003 (ISO/IEC 23270). There are independent implementations being worked on, including: More recently, Microsoft has announced plans to add support for generics, templates, partial types and some other new features. Those additions were already proposed for ECMA/ISO standardization.

Example

using System;

namespace Example { public class HelloWorld { private String aString;

public HelloWorld() { aString = "Hello World"; }

public override String ToString() { return(aString); }

public static void Main() { HelloWorld aHelloWorld = new HelloWorld(); Console.WriteLine(aHelloWorld.ToString()); } //Output is:Hello World } }

Marketing

Microsoft is agressively marketing C# as well as the other .NET languages. For example, purchasers of the latest version of
Visual Studio .NET (Microsoft's popular IDE) can immediately develop mobile device applications in C#. To develop applications in other languages, such as C++ (which Visual Studio supports), developers have to download a separate IDE which doesn't even integrate with Visual Studio. With these barriers, Microsoft is motivating developers to abandon C++ and switch to C#.

See also: F sharp programming language

External links