Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

อะไรคือความแตกต่างระหว่างตัวสร้างและตัวทำลายใน C #?


ตัวสร้าง

ตัวสร้างคลาสเป็นฟังก์ชันสมาชิกพิเศษของคลาสที่ดำเนินการทุกครั้งที่เราสร้างวัตถุใหม่ของคลาสนั้น

คอนสตรัคเตอร์มีชื่อเหมือนกันทุกประการกับชื่อคลาส และไม่มีประเภทการส่งคืน

ตัวสร้างมีชื่อเดียวกับชื่อคลาส -

class Demo {

   public 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();
      }
   }
}

ผลลัพธ์

Object is being created
Length of line : 6

ตัวทำลาย

destructor เป็นฟังก์ชันพิเศษของคลาสที่ดำเนินการเมื่อใดก็ตามที่วัตถุในคลาสนั้นอยู่นอกขอบเขต จะไม่สามารถคืนค่าหรือรับพารามิเตอร์ใดๆ ได้

มีชื่อเดียวกับชื่อคลาสที่มีเครื่องหมายตัวหนอน (~) นำหน้า เช่น ชื่อคลาสของเราคือ Demo −

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

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

มาดูตัวอย่างการใช้งาน Destructors ใน C# กัน −

ตัวอย่าง

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());
      }
   }
}

ผลลัพธ์

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