C#의 분석 및 쓰레기 회수 실례 분석
책을 읽을 때 자신이 쓴 예시 코드를 몇 가지 지식을 알고 기록해 두세요.동시에 자신의 손으로 코드를 쓰는 능력이 비교적 약하다는 것을 발견하면 그래도 많이 써야 한다.
using System;
namespace ConsoleApplication
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
fun();
GC.Collect(); //4、 , 。
Console.WriteLine("end!");
}
public static void fun(){ //1、 static
A a=new A();
a.Dispose();
//GC.Collect(); //3、 , a
}
public class A:IDisposable{
/* protected override void Finalize(){ //2、 Finalize, 。 Finalize, , 。
Console.WriteLine("some one disposed!");
}*/
~A(){
Console.WriteLine("some one Finalize!");
}
public void Dispose(){
Console.WriteLine("some one disposed!");
}
}
}
}
1. 이 코드의 출력은 다음과 같다.
Hello World!
some one disposed!
end!
some one Finalize!
이 회수상은 매우 비동기적으로 호출된다.
2. IDisposable 인터페이스의 Dispose 방법은'사용자가 대상을 사용하지 않을 때 수동으로 호출해야 한다'는 목적이다. 예를 들어 파일 열기, 데이터베이스 접근 등이다.제때에 석방해야 한다.
분명히 이 개념과 쓰레기 회수는 두 개념이다.방출된 후에도 이 대상은 여전히 존재하며, 운행 환경이 회수되어야 하며, 마지막 줄을 보십시오.
읽어주셔서 감사합니다. 여러분께 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.