[C#] 비관리 메모리 편하게 사용할 수 있도록 해주는 클래스

C# 에서는 Marshal 을 이용해서 비 관리 메모리를 사용할 수 있는데,

매번 Marshal 을 호출해서 초기화 하고 해제하고 하기가 너무 번거로워서 클래스로 만들었다.

IDisposable 을 상속하므로 using 을 이용하면 된다 개꿀.

Reallocate 로 재 할당이 가능하고

Intptr 인자 대신에 위치 가능하다.

UnmanagedMemoryBase

  • Properties (readonly)
    • Intptr Handle
    • int Length
  • Methods
    • void Free()

UnmanagedMemory : UnmanagedMemoryBase

  • Memory Size
    • UnmanagedMemory(memory size)
    • void Reallocate(memory size)
  • Byte Array
    • UnmanagedMemory(byte array)
    • void Reallocate(byte array)

UnmanagedStruct : UnmanagedMemoryBase

  • T must be struct
  • T PtrToStructure()
  • New Struct
    • UnmanagedStruct()
    • void Reallocate()
  • From Struct
    • UnmanagedStruct(T)
    • void Reallocate(T)