Constructors in c#
Constructor is a special method of a class that gets called when an object of a class is created. They are mainly used for initialization and memory allocation for member variables of class. There will always be a default constructor of a class even if you don’t create it. There is always at least one constructor in a class.
Constructors do not have any written types. There may be n number of constructors in a class. A constructor`s name should match the name of its class.  Here is an example
public class MyConstructor
    {
        public MyConstructor()
        {
            Console.WriteLine("My Constructor is called");
        }
    }
Types of constructors
There are five types of Constructors which are as follows
	-  Default Constructor
-  Parameterized Constructor
-  Copy Constructor
-  Static Constructor
-  Private Constructor
 
Default Constructor- Constructor which does not have any parameter is called default constructor. It is used for initializing member variable with default values. Here is an example
class Program
    {
        static void Main(string[] args)
        {
            MyConstructor myConstructor = new MyConstructor();
            Console.WriteLine(myConstructor.name);
            Console.Read();
        }
    }
    public class MyConstructor
    {
        public string name = string.Empty;
        public MyConstructor()
        {
            name = "Abhishek";
        }
    }
Output
Abhishek
Parameterized Constructor-A constructor which has at least one parameter is called parameterized constructor. It can initialize the member variables with the parameter passed to it. Here is an example.
class Program
    {
        static void Main(string[] args)
        {
            MyConstructor myConstructor = new MyConstructor("Abhishek");
            Console.WriteLine(myConstructor.name);
            Console.Read();
        }
    }
    public class MyConstructor
    {
        public string name = string.Empty;
        public MyConstructor( string empName)
        {
            name = empName;
        }
    }
 
Output
 
Abhishek
Copy Constructor- When a parameterized constructor contains the parameter of same class type is called Copy Constructor. It is used for initializing new instance of a call to the values of an existing instance. Here is an example
class Program
    {
        static void Main(string[] args)
        {
            MyConstructor myConstructor = new MyConstructor("Abhishek");
            MyConstructor mySecondConstructor = new MyConstructor(myConstructor);
            Console.WriteLine(mySecondConstructor.name);
            Console.Read();
        }
    }
    public class MyConstructor
    {
        public string name = string.Empty;
        
        public MyConstructor( string empName)
        {
            name = empName;
        }
        public MyConstructor(MyConstructor myConstructor)
        {
            name = myConstructor.name;
        }
    }
 
Output
 
Abhishek
Static Constructor- Static constructors are used to initialize the static members of a class. They are invoked only once and that is when the first time an instance of a class is created. Code writer inside static constructor will only be executed single time. Here is an example
class Program
    {
        static void Main(string[] args)
        {
            MyConstructor myConstructor = new MyConstructor();
            MyConstructor mySecondConstructor = new MyConstructor();            
            Console.Read();
        }
    }
    public class MyConstructor
    {        
        static MyConstructor()
        {
            Console.WriteLine("Static constructor called");
        }
        public MyConstructor()
        {
            Console.WriteLine("Default constructor called");
        }
    }
 
Output
 
Static constructor called
Default constructor called
Default constructor called
Private Constructor- Private constructors are used in classes which only have static members.  If a class has all private constructors and no public constructor, then you cannot create an object of that class. Once we declare a private constructor, we cannot add any other public or private constructor without parameter. Here is an example.
public class MyConstructor
    {        
        private MyConstructor()
        {
            Console.WriteLine("Static constructor called");
        }
       
    }
 
                       
                    
0 Comment(s)