C# 에서 DLL 을 사용하기 위해 배열을 넘기거나 받는 경우가 있습니다.
C# 에서는 C 와 같이 *(Pointer), &(Address) 연산자를 지원하지 않는데…
대신 ref 라는 형태로 지원하고 있습니다.
void TempTest(ref byte Data); 라는 함수가 있고 ref 를 통해 Byte 배열의 데이터를 준다고 가정합니다.
byte[] TestByte[100];
라고 선언하고, C 나 C++ 에서 쓰듯이
TempTest(ref TestByte); 라고 호출하면 바로 Error 가 납니다.
자! 그럼 이렇게 써보도록 하지요.
TempTest(ref TestByte[0]);
이렇게 사용하면 컴파일이 Pass 되고 정상적으로 데이터를 받을 수 있습니다.
C 나 C++ 에 익숙하신 분들은 위 구문이 &TestByte[0] 를 뜻한다고 이해하시면 됩니다.