This clause is informative.
C# (pronounced .C Sharp.) is a simple, modern, object oriented, and
type-safe programming language. It
will immediately be familiar to C and C++ programmers. C# combines the high
productivity of Rapid
Application Development (RAD) languages and the raw power of C++.
The rest of this chapter describes the essential features of the language.
While later chapters describe rules
and exceptions in a detail-oriented and sometimes mathematical manner, this
chapter strives for clarity and
brevity at the expense of completeness. The intent is to provide the reader
with an introduction to the
language that will facilitate the writing of early programs and the reading
of later chapters.
8.1 Getting started
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 a command-line compiler, such a program can be compiled
with a command line like
csc 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 called System that is
provided by the Common
Language Infrastructure (CLI) class library. This namespace contains the
Console class referred to in
the Main method. 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 uses Console.WriteLine as shorthand for
System.Console.WriteLine.
. The Main method is a member of the class Hello. It has the static
modifier, and so it is a method on
the class Hello rather 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. This
standard does not include a class
library. Instead, it references the class library provided by CLI.
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 (which involve unsafe code). The
separator ... is used in compound names such as Console.WriteLine.
?The program does not contain forward declarations. Forward declarations
are never needed, as declaration order is not
significant.
?The program does not use #include to import program text. Dependencies
among programs are handled symbolically rather than textually.
This approach eliminates barriers between applications written
using multiple languages. For example, the Console class need not
be written in C#.