What are the differences between constructors and destructors in C#?


Constructors

A class constructor is a special member function of a class that is executed whenever we create new objects of that class.

A constructor has exactly the same name as that of class and it does not have any return type.

Constructor has the same name as the class name −

class Demo {

   public Demo() {}

}

The following is an example −

Example

 Live Demo

using System;

namespace LineApplication {
   class Line {
      private double length; // Length of a line

      public Line() {
         Console.WriteLine("Object is being created");
      }

      public void setLength( double len ) {
         length = len;
      }

      public double getLength() {
         return length;
      }

      static void Main(string[] args) {
         Line line = new Line();

         // set line length
         line.setLength(6.0);
         Console.WriteLine("Length of line : {0}", line.getLength());
         Console.ReadKey();
      }
   }
}

Output

Object is being created
Length of line : 6

Destructors

A destructor is a special member function of a class that is executed whenever an object of its class goes out of scope.It can neither return a value nor can it take any parameters.

It has exactly the same name as that of the class with a prefixed tilde (~), for example, our class name is Demo −

public Demo() { // constructor
   Console.WriteLine("Object is being created");
}

~Demo() { //destructor
   Console.WriteLine("Object is being deleted");
}

Let us see an example to learn how to work with Destructors in C# −

Example

 Live Demo

using System;

namespace LineApplication {
   class Line {
      private double length; // Length of a line

      public Line() { // constructor
         Console.WriteLine("Object is being created");
      }

      ~Line() { //destructor
         Console.WriteLine("Object is being deleted");
      }

      public void setLength( double len ) {
         length = len;
      }

      public double getLength() {
         return length;
      }

      static void Main(string[] args) {
         Line line = new Line();

         // set line length
         line.setLength(6.0);
         Console.WriteLine("Length of line : {0}", line.getLength());
      }
   }
}

Output

Object is being created
Length of line : 6
Object is being deleted

Updated on: 20-Jun-2020

359 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements