Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#의 관리 코드와 비관리 코드

<시간/>

비관리 코드

  • CLR의 제어 하에 있지 않은 응용 프로그램은 관리되지 않습니다.

  • 안전하지 않은 코드 또는 관리되지 않는 코드는 포인터 변수를 사용하는 코드 블록입니다.

  • unsafe 수정자는 비관리 코드에서 포인터 사용을 허용합니다.

예를 살펴보겠습니다 -

static unsafe void Main(string[] args) {
   int var = 20;
   int* p = &var;
   Console.WriteLine("Data is: {0} ", var);
   Console.WriteLine("Address is: {0}", (int)p);
   Console.ReadKey();
}

관리 코드

관리 코드는 실행이 공용 언어 런타임에 의해 관리되는 코드입니다. 관리 코드를 가져와서 기계어 코드로 컴파일합니다. 그 후, 코드가 실행됩니다. 여기서 런타임, 즉 CLR은 자동 메모리 관리, 유형 안전 등을 제공합니다.

관리 코드는 .NET 위에서 실행되는 고급 언어로 작성됩니다. 이것은 C#, F# 등이 될 수 있습니다. 이 언어로 컴파일러를 사용하여 컴파일된 코드는 기계어 코드가 생성되지 않습니다. 그러나 런타임에 의해 컴파일되고 실행되는 중간 언어 코드를 얻게 됩니다.

"비관리 코드"라고 하는 C/C++ 코드에는 해당 권한이 없습니다. 프로그램은 운영 체제에 의해 메모리에 로드되는 바이너리 형식입니다. 나머지는 프로그래머가 처리해야 합니다.