
- C# - Home
- C# - Overview
- C# - Environment
- C# - Program Structure
- C# - Basic Syntax
- C# - Data Types
- C# - Type Conversion
- C# - Variables
- C# - Constants
- C# - Operators
- C# - Arithmetic Operators
- C# - Assignment Operators
- C# - Relational Operators
- C# - Logical Operators
- C# - Bitwise Operators
- C# - Miscellaneous Operators
- C# - Operators Precedence
- C# Conditional Statements
- C# - Decision Making
- C# - If
- C# - If Else
- C# - Nested If
- C# - Switch
- C# - Nested Switch
- C# Control Statements
- C# - Loops
- C# - For Loop
- C# - While Loop
- C# - Do While Loop
- C# - Nested Loops
- C# - Break
- C# - Continue
- C# OOP & Data Handling
- C# - Encapsulation
- C# - Methods
- C# - Nullables
- C# - Arrays
- C# - Strings
- C# - Structure
- C# - Enums
- C# - Classes
- C# - Inheritance
- C# - Polymorphism
- C# - Operator Overloading
- C# - Interfaces
- C# - Namespaces
- C# - Preprocessor Directives
- C# - Regular Expressions
- C# - Exception Handling
- C# - File I/O
- C# Advanced Tutorial
- C# - Attributes
- C# - Reflection
- C# - Properties
- C# - Indexers
- C# - Delegates
- C# - Events
- C# - Collections
- C# - Generics
- C# - Anonymous Methods
- C# - Unsafe Codes
- C# - Multithreading
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.