2010-01-11 2 views
1

BCL 팀이 UnmanagedMemoryStream의 생성자에서 IntPtr 대신 Byte *를 사용하기로 선택한 이유는 누구나 알 수 있습니까? 이렇게하면 유형을 구성하기 위해 안전하지 않은 컨텍스트를 사용하게됩니다. 그들은 IntPtr을 사용할 수 있었고 안전하지 않은 상황을 강요하지 않았을 것 같습니다.System.IO.UnmanagedMemoryStream - IntPtr 대신 Byte *를 사용하는 이유

답변

2

더 안전하기 때문에 추측 할 수 있습니다. IntPtr을 사용한다면 생성자는 임의의 가비지 값으로 호출 될 수 있습니다. byte *를 사용하면 적어도 컴파일러가 메모리가 유효하고 고정되어 있는지 확인합니다. IntPtr을 byte *로 캐스팅하는 것은 꽤 간단합니다.

관련 문제