Training
Certifications
Books
Special Offers
Community




 
Microsoft® C# Language Specifications
Author Microsoft Corporation
Pages 432
Disk N/A
Level All Levels
Published 04/25/2001
ISBN 9780735614482
ISBN-10 0-7356-1448-2
Price(USD) $29.99
To see this book's discounted price, select a reseller below.
 

More Information

About the Book
Table of Contents
Sample Chapter
Related Series
Related Books
About the Author

Support: Book & CD

Rate this book
Barnes Noble Amazon Quantum Books

 


Chapter 3: Basic concepts



3. Basic concepts

3.1 Program Startup

Program startup occurs when the execution environment calls a designated method, which is referred to as the program’s entry point. This entry point method is always named Main, and can have one of the following signatures:

static void Main() {…}

static void Main(string[] args) {…}

static int Main() {…}

static int Main(string[] args) {…}

As shown, the entry point may optionally return an int value. This return value is used in program termination (section 3.2).

The entry point may optionally have one formal parameter, and this formal parameter may have any name. If such a parameter is declared, it must obey the following constraints:

  • The value of this parameter must not be null.
  • Let args be the name of the parameter. If the length of the array designated by args is greater than zero, the array members args[0] through args[args.Length-1], inclusive, must refer to strings, called program parameters, which are given implementation-defined values by the host environment prior to program startup. The intent is to supply to the program information determined prior to program startup from elsewhere in the hosted environment. If the host environment is not capable of supplying strings with letters in both uppercase and lowercase, the implementation shall ensure that the strings are received in lowercase.

Since C# supports method overloading, a class or struct may contain multiple definitions of some method, provided each has a different signature. However, within a single program, no class or struct shall contain more than one method called Main whose definition qualifies it to be used as a program entry point. Other overloaded versions of Main are permitted, provided they have more than one parameter, or their only parameter is other than type string[].

A program can be made up of multiple classes or structs, two or more of which contain a method called Main whose definition qualifies it to be used as a program entry point. In such cases, one of these Main methods must be chosen as the entry point so that program startup can occur. This choice of an entry point is beyond the scope of this specification—no mechanism for specifying or determining an entry point is provided.

In C#, every method must be defined as a member of a class or struct. Ordinarily, the declared accessibility (section 3.5.1) of a method is determined by the access modifiers (section 10.2.3) specified in its declaration, and similarly the declared accessibility of a type is determined by the access modifiers specified in its declaration. In order for a given method of a given type to be callable, both the type and the member must be accessible. However, the program entry point is a special case. Specifically, the execution environment can access the program’s entry point regardless of its declared accessibility and regardless of the declared accessibility of its enclosing type declarations.

In all other respects, entry point methods behave like those that are not entry points.


Next




Top of Page


Last Updated: Saturday, July 7, 2001