C#에서는 배열을 메서드의 인수(argument)로 전달할 수 있습니다. 이를 통해 여러 개의 값을 한 번에 함수에 넘기고 처리 결과를 받아올 수 있습니다.
배열 선언 및 초기화
먼저 다음과 같이 배열을 선언하고 초기화합니다.
MyArray app = new MyArray();
/* 5개의 요소를 가진 int 배열 */
int [] balance = new int[]{1000, 2, 3, 17, 50};메서드에 배열 전달하기
이제 getAverage() 메서드를 호출하면서 배열을 인수로 전달합니다. 메서드 시그니처는 다음과 같습니다.
double getAverage(int[] arr, int size) {
// 코드
}메서드 매개변수로 int[] 타입을 선언하면 해당 배열 전체를 참조로 전달하게 됩니다. C#에서 배열은 참조 타입(reference type)이므로, 배열의 복사본이 아닌 원본 배열에 대한 참조가 전달됩니다.
전체 예제 코드
다음은 C#에서 메서드에 배열을 전달하는 방법을 보여주는 완전한 예제입니다.
using System;
namespace ArrayApplication {
class MyArray {
double getAverage(int[] arr, int size) {
int i;
double avg;
int sum = 0;
for (i = 0; i < size; ++i) {
sum += arr[i];
}
avg = (double)sum / size;
return avg;
}
static void Main(string[] args) {
MyArray app = new MyArray();
/* 5개의 요소를 가진 int 배열 */
int [] balance = new int[]{1000, 2, 3, 17, 50};
double avg;
/* 배열에 대한 참조를 인수로 전달 */
avg = app.getAverage(balance, 5 ) ;
/* 반환된 값 출력 */
Console.WriteLine( "Average value is: {0} ", avg );
Console.ReadKey();
}
}
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Average value is: 214.4
코드 설명
getAverage() 메서드는 배열과 배열의 크기를 매개변수로 받아, for 반복문으로 모든 요소의 합계를 구한 뒤 평균값을 계산하여 반환합니다. Main 메서드에서는 balance 배열과 크기 5를 인수로 전달하여 평균값인 214.4를 얻습니다.
이처럼 C#에서는 배열 이름만 메서드 인수로 넘기면 되며, 별도의 포인터 문법 없이 간단하게 배열을 전달할 수 있다는 점이 특징입니다.