Jump to content

C Sharp (programming language)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 61.235.206.219 (talk) at 14:53, 7 March 2004. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 Visual BASIC and Java influences).

.

Program execution

C# does not compile to binary code which can be executed directly by the target computer. Instead, it is compiled to an intermediate representation. This form consists of metadata and instructions based upon a stack-based virtual machine. 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 (similar to C++ templates), partial types and some other new features. Those additions were already proposed for ECMA/ISO standardization.

Example

using System;
namespace Example
{
    public sealed class HelloWorld
    {
        string myString;
        public string Value
        {
            get
            {
                return myString;
            }
            set
            {
                if(value == null)
                    throw new ArgumentNullException();
                else
                    myString = value;
            }
        }
        public HelloWorld()
        {
            myString = "Hello, world!";
        }
        public override String ToString()
        {
            return myString;
        }
        public static void Main()
        {
            HelloWorld myHelloWorld = new HelloWorld();
            Console.WriteLine(myHelloWorld.ToString());
            Console.WriteLine(myHelloWorld.Value);
            Console.WriteLine(myHelloWorld);
            myHelloWorld.Value = "Blah.";
            Console.WriteLine(myHelloWorld.ToString());
            Console.WriteLine(myHelloWorld.Value);
            Console.WriteLine(myHelloWorld);
        }
        //Output is:
        //Hello, world!
        //Hello, world!
        //Hello, world!
        //Blah.
        //Blah.
        //Blah.
    }
}

Marketing

Microsoft is aggressively 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 mobile device applications in other languages, such as C++ (which Visual Studio supports), developers have to download a separate IDE which does not integrate with Visual Studio. With these barriers, Microsoft is motivating developers to abandon C++ and switch to C#.

See also: F sharp programming language, Nemerle programming language