C# - Program Structure



Before we study basic building blocks of the C# programming language, let us look at a bare minimum C# program structure so that we can take it as a reference in upcoming chapters.

Basic Structure of a C# Program

A C# program follows a simple structure with essential components. Heres what a basic program looks like:

  • Every program starts with using statements to include necessary namespaces.
  • The namespace groups related classes together.
  • A class contains the program logic.
  • The Main() method is the entry point of the program where execution begins.
  • Statements inside Main() are executed sequentially.

Creating Hello World Program

Let us look at a simple code that prints the words "Hello World" −

using System;

namespace HelloWorldApplication {
   class HelloWorld {
      static void Main(string[] args) {
         /* my first program in C# */
         Console.WriteLine("Hello World");
         Console.ReadKey();
      }
   }
}

When this code is compiled and executed, it produces the following result −

Hello World

Let us look at the various parts of the given program −

  • The first line of the program using System; - the using keyword is used to include the System namespace in the program. A program generally has multiple using statements.

  • The next line has the namespace declaration. A namespace is a collection of classes. The HelloWorldApplication namespace contains the class HelloWorld.

  • The next line has a class declaration, the class HelloWorld contains the data and method definitions that your program uses. Classes generally contain multiple methods. Methods define the behavior of the class. However, the HelloWorld class has only one method Main.

  • The next line defines the Main method, which is the entry point for all C# programs. The Main method states what the class does when executed.

  • The next line /*...*/ is ignored by the compiler and it is put to add comments in the program.

  • The Main method specifies its behavior with the statement Console.WriteLine("Hello World");

    WriteLine is a method of the Console class defined in the System namespace. This statement causes the message "Hello, World!" to be displayed on the screen.

  • The last line Console.ReadKey(); is for the VS.NET Users. This makes the program wait for a key press and it prevents the screen from running and closing quickly when the program is launched from Visual Studio .NET.

Key Components of a C# Program

1. Namespace Declaration

Namespaces help organize large programs by grouping related classes together.

namespace MyApplication
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Hello from MyApplication!");
        }
    }
}

When the above code is compiled and executed, it produces the following result −

Hello from MyApplication!

2. Using Directives (using)

The using statement imports namespaces, allowing access to built-in classes and methods.

using System;  // Enables Console.WriteLine() function

class Example
{
    static void Main()
    {
        Console.WriteLine("Using directive example.");
    }
}
    

When the above code is compiled and executed, it produces the following result −

Using directive example.

3. Class Declaration

C# is an object-oriented language, and every program must have at least one class.

class Car
{
    string model = "Tesla";

    static void Main()
    {
        Car myCar = new Car();
        Console.WriteLine("Car Model: " + myCar.model);
    }
}

When the above code is compiled and executed, it produces the following result −

Car Model: Tesla

4. The Main() Method

The Main() method serves as the entry point for every C# program.

using System;

class Start
{
    static void Main()
    {
        Console.WriteLine("This is the main entry point of the program.");
    }
}

When the above code is compiled and executed, it produces the following result −

This is the main entry point of the program.

5. Statements & Expressions

Every instruction inside the Main() method is a statement.

class StatementsExample
{
    static void Main()
    {
        int a = 5, b = 10;
        int sum = a + b;
        Console.WriteLine("Sum: " + sum);
    }
}

When the above code is compiled and executed, it produces the following result −

Sum: 15

6. Access Modifiers

Access modifiers define the visibility of classes and methods.

class Example
{
    private int secretNumber = 42; // Private: Only accessible within this class

    public void Display()
    {
        Console.WriteLine("Access Modifier Example: " + secretNumber);
    }
}

class Program
{
    static void Main()
    {
        Example obj = new Example();
        obj.Display();
    }
}

When the above code is compiled and executed, it produces the following result −

Access Modifier Example: 42

Organizing a C# Program

A well-structured program is easier to read, runs better, and is simpler to maintain.

  • You should use proper indentation to make the code easy to read.
  • While defining identifiers, give meaningful names to classes and methods so their purpose is clear.
  • Keep methods short and focused on a single task.
  • You must follow naming rules (PascalCase for classes, camelCase for variables).
  • Store related classes in separate files to keep things organized.

Example: Well-Structured C# Program

Here's a real-world example demonstrating a structured C# program with multiple components:

using System;

namespace School
{
    class Student
    {
        public string Name;
        public int Age;

        public void DisplayStudentInfo()
        {
            Console.WriteLine("Student Name: " + Name);
            Console.WriteLine("Student Age: " + Age);
        }
    }

    class Program
    {
        static void Main()
        {
            Student student1 = new Student();
            student1.Name = "Alice";
            student1.Age = 14;

            student1.DisplayStudentInfo();
        }
    }
}

When the above code is compiled and executed, it produces the following result −

Student Name: Alice
Student Age: 14

It is worth to note the following points −

  • C# is case sensitive.

  • All statements and expression must end with a semicolon (;).

  • The program execution starts at the Main method.

  • Unlike Java, program file name could be different from the class name.

Compiling and Executing the Program

If you are using Visual Studio.Net for compiling and executing C# programs, take the following steps −

  • Start Visual Studio.

  • On the menu bar, choose File -> New -> Project.

  • Choose Visual C# from templates, and then choose Windows.

  • Choose Console Application.

  • Specify a name for your project and click OK button.

  • This creates a new project in Solution Explorer.

  • Write code in the Code Editor.

  • Click the Run button or press F5 key to execute the project. A Command Prompt window appears that contains the line Hello World.

Compiling and Executing the Program Using Command-line

You can compile a C# program by using the command-line instead of the Visual Studio IDE −

  • Open a text editor and add the above-mentioned code.

  • Save the file as helloworld.cs

  • Open the command prompt tool and go to the directory where you saved the file.

  • Type csc helloworld.cs and press enter to compile your code.

  • If there are no errors in your code, the command prompt takes you to the next line and generates helloworld.exe executable file.

  • Type helloworld to execute your program.

  • You can see the output Hello World printed on the screen.

Advertisements