안전하지 않은 코드 및 포인터 - (C# 프로그래밍 가이드)Unsafe code and pointers (C# Programming Guide)

형식 안전성 및 보안을 유지하기 위해 C#에서는 포인터 산술 연산을 기본적으로 지원하지 않습니다.To maintain type safety and security, C# does not support pointer arithmetic, by default. 그러나 unsafe 키워드를 사용하여 포인터를 사용할 수 있는 안전하지 않은 컨텍스트를 정의할 수 있습니다.However, by using the unsafe keyword, you can define an unsafe context in which pointers can be used. 포인터에 대한 자세한 내용은 포인터 형식을 참조하세요.For more information about pointers, see Pointer types.

참고

CLR(공용 언어 런타임)에서 안전하지 않은 코드를 확인할 수 없는 코드라고 합니다.In the common language runtime (CLR), unsafe code is referred to as unverifiable code. C#에 안전하지 않은 코드가 반드시 위험한 것은 아니며, CLR에서 안전을 확인할 수 없는 코드입니다.Unsafe code in C# is not necessarily dangerous; it is just code whose safety cannot be verified by the CLR. 그러므로 CLR은 완전히 신뢰할 수 있는 어셈블리에 있는 경우 안전하지 않은 코드만 실행합니다.The CLR will therefore only execute unsafe code if it is in a fully trusted assembly. 안전하지 않은 코드를 사용하는 경우 코드로 인해 보안 위험이나 포인터 오류가 발생하지 않도록 확인해야 합니다.If you use unsafe code, it is your responsibility to ensure that your code does not introduce security risks or pointer errors.

안전하지 않은 코드 개요Unsafe code overview

안전하지 않은 코드에는 다음과 같은 속성이 있습니다.Unsafe code has the following properties:

  • 메서드, 형식 및 코드 블록은 안전하지 않은 것으로 정의할 수 있습니다.Methods, types, and code blocks can be defined as unsafe.

  • 경우에 따라 안전하지 않은 코드는 배열 범위 검사를 제거하여 애플리케이션의 성능을 향상할 수 있습니다.In some cases, unsafe code may increase an application's performance by removing array bounds checks.

  • 포인터가 필요한 네이티브 함수를 호출하는 경우 안전하지 않은 코드가 필요합니다.Unsafe code is required when you call native functions that require pointers.

  • 안전하지 않은 코드를 사용하면 보안 및 안정성 위험이 발생합니다.Using unsafe code introduces security and stability risks.

  • 안전하지 않은 블록을 포함하는 코드는 -안전하지 않은 컴파일러 옵션을 사용하여 컴파일해야 합니다.The code that contains unsafe blocks must be compiled with the -unsafe compiler option.

자세한 내용은 다음을 참조하세요.For more information, see:

C# 언어 사양C# language specification

자세한 내용은 C# 언어 사양안전하지 않은 코드 토픽을 참조하세요.For more information, see the Unsafe code topic of the C# language specification.

참고 항목See also