미처 완성되지 못한 알고리즘

c#에서 배열을 매개변수로 넘길 때 주의 점 본문

IT/c#

c#에서 배열을 매개변수로 넘길 때 주의 점

-June- 2017. 9. 11. 19:30

C#에서 배열을 매개변수로 넘길 때 '어떤 자료형의 배열'이던 간에 그 배열의 사이즈만큼 복사해서 메모리에 잡힌다.

 

 

예)

 

public void Array(int[] Array) {}

 

main()

{

  int[] a = new int[5];

Array(a);

}

 

 

이 경우 int형 배열의 사이즈만큼 복사해서 매개변수를 넘겨준다.

 

이 것은 참조타입인 클래스 배열도 마찬가지다.

 

클래스 배열을 매개변수로 넘길 시, 그 클래스 배열의 길이와 사이즈 만큼 힙 영역에 '따로' 잡혀서 복사가 일어난다.

 

 

이 경우 같은 메모리를 참조하기 위해서 ref 키워드를 붙여준다.

 

 

 

예)

 

public void Array(ref int[] array) {}

 

main()

{

int[] a = new int[5];

Array(ref a);

}

 

 

 

'IT > c#' 카테고리의 다른 글

event내부 구조 및 예제  (0) 2017.09.12
반환형이 object형식일 때  (0) 2017.09.11
#region  (0) 2017.09.08
Thread  (0) 2017.08.24
LINQ  (0) 2017.08.24