고정과 안전하지 않은 차이점은 무엇입니까?
문제
.NET에 메모리가 제자리에있는 두 가지 방법이있는 이유는 무엇입니까? 그들의 차이점은 무엇입니까?
해결책
고정 진술은 안전하지 않은 수정 자. 안전하지 않은 것은 Pointer 산술 (예 : 낮은 레벨 API 호출)을 사용한다고 선언합니다. 이는 일반 C# 작업 외부에 있습니다. 그만큼 결정된 문은 메모리를 제자리에 고정시키는 데 사용되므로 쓰레기 수집기가 여전히 사용중인 동안 재 할당하지 않습니다. 안전하지 않은 상황 밖에서 고정 된 명령문을 사용할 수 없습니다.
예시
public static void PointyMethod(char[] array)
{
unsafe
{
fixed (char *p = array)
{
for (int i=0; i<array.Length; i++)
{
System.Console.Write(*(p+i));
}
}
}
}
제휴하지 않습니다 StackOverflow