params 의 기능은?

params 키워드를 사용하면 동일한 유형의 매개변수를 메소드에 원하는 수만큼 전달할 수 있다.

[params 예시 코드]

using System;

namespace Params
{
	internal class Program
	{
		static int Sum1(int[] numbers)
		{
			int sum = 0;
			foreach(var number in numbers)
			{
				sum += number;
				Console.Write($"{number}, ");
			}
			return sum;
		}

		static int Sum2(params int[] numbers) // params로 인자 전달
		{
			int sum = 0;
			foreach(var number in numbers)
			{
				sum += number;
				Console.Write($"{number}, ");
			}
			return sum;
		}


		static void Main(string[] args)
		{
			Console.WriteLine(Program.Sum1(new int[] { 1, 2, 3 }));
			Console.WriteLine(Program.Sum2(4, 5, 6)); // params
		}
	}
}

[params 오류 예시 코드(1)]

params의 매개변수는 1차원 배열만 가능하다. 아래 코드는 매개변수의 타입을 리스트로 정했을 때 발생하는 syntax 에러이다.

image-20220702132351216

[params 오류 예시 코드(2)]

params의 매개 변수 뒤에는 추가 매개 변수가 허용되지 않는다. 왜냐하면 컴파일러가 전달해야할 값의 시작과 끝 지점을 모르기 때문이다.

image-20220702133231459

태그: ,

카테고리:

업데이트:

댓글남기기