A First C# Program

Here is a program that multiplies 12 by 30, and prints the result, 360, to the screen. The double forward slash indicates that the remainder of a line is a comment.

using System;                 // Importing namespace

class Test                    // Class declaration
{
  static void Main()          // Method declaration
  {
    int x = 12 * 30;          // Statement 1
    Console.WriteLine (x);    // Statement 2
  }                           // End of method
}                             // End of class

At the heart of this program lie two statements. Statements in C# execute sequentially and are terminated by a semicolon. The first statement computes the expression 12 * 30 and stores the result in a local variable, named x, which is an integer type. The second statement calls the Console class’s WriteLine method to print the variable x to a text window on the screen.

A method performs an action in a series of statements called a statement block—a pair of braces containing zero or more statements. We defined a single method named Main.

Writing higher-level functions that call upon lower-level functions simplifies a program. We can refactor our program with a reusable method that multiplies an integer by 12, as follows:

using System;

class Test
{
  static void Main()
  {
    Console.WriteLine (FeetToInches (30));    // 360
    Console.WriteLine (FeetToInches (100));   // 1200
  }

  static int FeetToInches (int feet)
  {
    int inches = feet * 12;
    return inches;
  }
}

A method can receive input data from the caller by specifying parameters and output data back to the caller by specifying a return type. We defined a method called FeetToInches that has a parameter for inputting feet, and a return type for outputting inches, both of type int (integer).

The literals 30 and 100 are the arguments passed to the FeetToInches method. The Main method in our example has empty parentheses because it has no parameters, and is void because it doesn’t return any value to its caller. C# recognizes a method called Main as signaling the default entry point of execution. The Main method may optionally return an integer (rather than void) in order to return a value to the execution environment. The Main method can also optionally accept an array of strings as a parameter (that will be populated with any arguments passed to the executable). For example:

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

Note

An array (such as string[]) represents a fixed number of elements of a particular type (for more information, see Arrays).

Methods are one of several kinds of functions in C#. Another kind of function we used was the * operator, used to perform multiplication. There are also constructors, properties, events, indexers, and finalizers.

In our example, the two methods are grouped into a class. A class groups function members and data members to form an object-oriented building block. The Console class groups members that handle command-line input/output functionality, such as the WriteLine method. Our Test class groups two methods—the Main method and the FeetToInches method. A class is a kind of type, which we will examine in the section Type Basics.

At the outermost level of a program, types are organized into namespaces. The using directive was used to make the System namespace available to our application, to use the Console class. We could define all our classes within the TestPrograms namespace as follows:

using System;

namespace TestPrograms
{
  class Test  {...}
  class Test2 {...}
}

The .NET Framework is organized into nested namespaces. For example, this is the namespace that contains types for handling text:

using System.Text;

The using directive is there for convenience; you can also refer to a type by its fully qualified name, which is the type name prefixed with its namespace, such as System.Text.StringBuilder.

Compilation

The C# compiler collects source code, specified as a set of files with the .cs extension, into an assembly. An assembly is the unit of packaging and deployment in .NET. An assembly can be either an application or a library. A normal console or Windows application has a Main method and is an .exe file. A library is a .dll and is equivalent to an .exe without an entry point. Its purpose is to be called upon (referenced) by an application or by other libraries. The .NET Framework is a set of libraries.

The name of the C# compiler is csc.exe. You can either use an integrated development environment (IDE), such as Visual Studio, to compile, or call csc manually from the command line. To compile manually, first save a program to a file such as MyFirstProgram.cs, and then go to the command line and invoke csc (located under %SystemRoot%Microsoft.NETFramework<framework-version> where %SystemRoot% is your Windows directory) as follows:

csc MyFirstProgram.cs

This produces an application named MyFirstProgram.exe.

To produce a library (.dll), do the following:

csc /target:library MyFirstProgram.cs
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset