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

소멸자

소멸자는 클래스의 개체가 범위를 벗어날 때마다 실행되는 클래스의 특수 멤버 함수입니다. 값을 반환하거나 매개변수를 사용할 수 없습니다.

접두사 물결표(~)가 붙은 클래스의 이름과 정확히 같은 이름을 갖습니다. 예를 들어 클래스 이름은 Demo −

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

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

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