답변:
~는 소멸자입니다
마무리
C #에서 Finalize 메서드는 표준 C ++ 소멸자가 수행하는 작업을 수행합니다. C #에서는 이름을 Finalize로 지정하지 않습니다. 클래스 이름 앞에 물결표 (~) 기호를 배치하는 C ++ 소멸자 구문을 사용합니다.
처분
클래스의 사용자가 명시 적으로 호출 할 수 있는 Close()
또는 Dispose()
메서드 에 객체를 처리하는 것이 좋습니다 . GC는 최종화 (소멸자)를 호출합니다.
는 IDisposable 인터페이스는 클래스가 배치 될 필요 자원을 점유하고 사용자에게이를 해제 할 수있는 방법을 제공하는 세계를 알려줍니다. 클래스에서 종료자를 구현해야하는 경우 Dispose 메소드 는 이 GC.SuppressFinalize()
메소드를 사용 하여 인스턴스의 종료가 억제되도록해야합니다.
무엇을 사용해야합니까?
소멸자를 명시 적으로 호출하는 것은 합법적이지 않습니다. 가비지 수집기에서 소멸자를 호출합니다. 닫고 처리하려는 귀중한 관리되지 않는 리소스 (예 : 파일 핸들)를 가능한 한 빨리 처리하려면 IDisposable 인터페이스를 구현해야합니다.
Finalize
방법은 최소 파생 된 대부분의 파생에서 상속 체인의 모든 인스턴스에 대한 재귀라고합니다" . 그러나 상속 가능한 소멸자에서 얻는 것과 동일한 동작 은 아닙니다 .
클래스의 소멸자를 표시하는 데 사용됩니다.
try/finally
부모 Finalize
메서드가 호출 되도록 하는 일반적으로 쓸모없는 블록을 포함하는 종료자를 자동 생성합니다 . 소멸자에 해당되는 대부분의 내용은 종료 자에 해당되며 그 반대의 경우도 있지만 단어의 의미는 약간 다릅니다.
소멸자 (C # 프로그래밍 안내서)를 참조하십시오 . 그러나 C ++과는 달리 프로그래머는 가비지 수집기에 의해 결정되므로 소멸자가 호출되는 시점을 제어 할 수 없습니다.
~는 일반적으로 해체자를 나타냅니다. 개체가 죽기 직전에 실행됩니다.