C# (pronounced C 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. Some languages sacrifice RAD (Rapid Application Development) conveniences for power and low-level control. C# was designed as balance between power and development speed.

Table of contents
1 Program execution
2 Standardization
3 Example
4 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 } }

See also: F sharp programming language

External links