The canonical "hello, world" program can be written as follows:
using System;
class Hello
{
static void Main() {
Console.WriteLine("hello, world");
}
}
The source code for a C# program is typically stored in one or more text files with a file extension of
.cs, as in hello.cs. Using the command-line compiler provided with Visual Studio .NET, such a program can be compiled with the command-line directivecsc hello.cs
which produces an application named
hello.exe. The output produced by this application when it is run is:hello, world
Close examination of this program is illuminating:
- The
using System;directive references a namespace calledSystemthat is provided by the Microsoft .NET Framework class library. This namespace contains theConsoleclass referred to in theMainmethod. Namespaces provide a hierarchical means of organizing the elements of one or more programs. A "using" directive enables unqualified use of the types that are members of the namespace. The "hello, world" program usesConsole.WriteLineas shorthand forSystem.Console.WriteLine. - The
Mainmethod is a member of the classHello. It has thestaticmodifier, and so it is a method on the classHellorather than on instances of this class. - The entry point for an application — the method that is called to begin execution — is always a static method named
Main. - The "hello, world" output is produced using a class library. The language does not itself provide a class library. Instead, it uses a class library that is also used by Visual Basic .NET and Visual C++ .NET.
For C and C++ developers, it is interesting to note a few things that do not appear in the "hello, world" program.
- The program does not use a global method for
Main. Methods and variables are not supported at the global level; such elements are always contained within type declarations (e.g., class and struct declarations). - The program does not use either "
::" or "->" operators. The "::" is not an operator at all, and the "->" operator is used in only a small fraction of programs — those that employ unsafe code (Section A). The separator "." is used in compound names such asConsole.WriteLine. - The program does not contain forward declarations. Forward declarations are never needed, as declaration order is not significant.
- The program does not use
#includeto import program text. Dependencies among programs are handled symbolically rather than textually. This approach eliminates barriers between applications written using multiple languages. For example, theConsoleclass need not be written in C#.
No comments:
Post a Comment