미처 완성되지 못한 알고리즘
c#에서 배열을 매개변수로 넘길 때 주의 점 본문
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 |