In C#, constructor is a special method which is invoked automatically at the time of object creation. It is used to initialize the data members of new object generally. The constructor in C# has the same name as class or struct.
If we create a class without having any constructor, then the compiler will automatically create a one default constructor for that class. So, there is always one constructor that will exist in every class.
In c#, a class can contain more than one constructor with different types of arguments. The constructors will never return anything, so we don’t need to use any return type, not even void, while defining the constructor method in the class.
There can be two types of constructors in C#.
- Default constructor
- Parameterized constructor
C# Default Constructor
A constructor which has no argument is known as default constructor. It is invoked at the time of creating object.
C# Default Constructor Example: Having Main() within class
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | using System; public class Employee { public Employee() { Console.WriteLine("Default Constructor Invoked"); } public static void Main(string[] args) { Employee e1 = new Employee(); Employee e2 = new Employee(); } } |
Output:
1 2 3 4 | Default Constructor Invoked Default Constructor Invoked |
C# Default Constructor Example: Having Main() in another class
Let’s see another example of default constructor where we are having Main() method in another class.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | using System; public class Employee { public Employee() { Console.WriteLine("Default Constructor Invoked"); } } class TestEmployee{ public static void Main(string[] args) { Employee e1 = new Employee(); Employee e2 = new Employee(); } } |
Output:
1 2 3 4 | Default Constructor Invoked Default Constructor Invoked |
C# Parameterized Constructor
A constructor which has parameters is called parameterized constructor. It is used to provide different values to distinct objects.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | using System; public class Employee { public int id; public String name; public float salary; public Employee(int i, String n,float s) { id = i; name = n; salary = s; } public void display() { Console.WriteLine(id + " " + name+" "+salary); } } class TestEmployee{ public static void Main(string[] args) { Employee e1 = new Employee(101, "Jane", 890000f); Employee e2 = new Employee(102, "Salah", 490000f); e1.display(); e2.display(); } } |
Output:
1 2 3 4 | 101 Jane 890000 102 Salah 490000 |