Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 메서드에 대한 매개 변수로 포인터를 전달하는 방법은 무엇입니까?

<시간/>

포인터를 메소드에 매개변수로 전달하려면 아래 단계를 참조하십시오 -

먼저 unsafe 수정자로 함수 스왑을 만듭니다.

public unsafe void swap(int* p, int *q) {
   int temp = *p;
   *p = *q;
   *q = temp;
}

이제 static void main 아래에 첫 번째와 두 번째 변수의 값을 추가하고 두 변수에 대한 포인터를 설정합니다.

변수의 값을 표시한 다음 위에 표시된 swap() 메서드를 호출합니다. 메소드는 값을 교환하고 결과를 표시합니다 -

public unsafe static void Main() {
   Program p = new Program();
   int var1 = 10;
   int var2 = 20;
   int* x = &var1;
   int* y = &var2;

   Console.WriteLine("Before Swap: var1:{0}, var2: {1}", var1, var2);
   p.swap(x, y);

   Console.WriteLine("After Swap: var1:{0}, var2: {1}", var1, var2);
   Console.ReadKey();
}