728x90
안녕하세요! 이번 글에서는 가변길이 매개변수를 사용할 수 있는 params 키워드에 대해 알아보겠습니다.
params 키워드는 메서드의 매개변수를 선언할 때 사용되며, 가변 길이의 매개변수를 전달할 수 있게 해줍니다.
이를 통해 메서드를 호출할 때 인자의 개수를 동적으로 조절할 수 있습니다.
사용하는 이유
params 키워드를 사용하지 않았을 때
class Program
{
static void Main()
{
// 예제 메서드 호출
DisplayInfoWithoutParams("Sam", 19);
DisplayInfoWithoutParams("John", 25, "Sonata");
DisplayInfoWithoutParams("Jane", 30, "Santafe", "Grandeul");
}
// 매개변수 개수에 따라 오버로딩한 경우
static void DisplayInfoWithoutParams(string name, int age)
{
Console.WriteLine($"Name: {name}, Age: {age}");
}
static void DisplayInfoWithoutParams(string name, int age, string car)
{
Console.WriteLine($"Name: {name}, Age: {age}, Car: {car}");
}
static void DisplayInfoWithoutParams(string name, int age, string primaryCar, string secondaryCar)
{
Console.WriteLine($"Name: {name}, Age: {age}, Car: {primaryCar}, {secondaryCar}");
}
}
- 메서드를 호출할 때 필요한 매개변수의 개수에 따라 오버로딩한 메서드를 정의해야 합니다.
- 매개변수 개수가 다르면 다른 메서드를 호출해야 하므로 코드 중복이 발생합니다.
params 키워드를 사용하였을 때
class Program
{
static void Main()
{
// 예제 메서드 호출
DisplayInfo("Sam", 19);
DisplayInfo("John", 25, "Tico");
DisplayInfo("Jane", 30, "Santafe", "Grandeul", "Tico", "Test");
}
static void DisplayInfo(string name, int age, params string[] cars)
{
Console.Write($"Name: {name}, Age: {age}");
if (cars.Length > 0)
{
string carsInfo = ", Cars: ";
carsInfo += string.Join(",", cars);
Console.WriteLine(carsInfo);
}
else
{
Console.WriteLine();
}
}
}
- string[] locations 매개변수에 params 키워드가 사용되었습니다.
- 하나의 메서드로 여러 개의 인자를 처리할 수 있습니다.
- 필요한 만큼의 인자를 전달할 수 있어 훨씬 유연한 사용이 가능합니다.
- 코드 중복이 줄어들어 유지보수가 용이해집니다.
주의사항
- params 키워드는 메서드의 매개변수 목록에서 마지막에 위치해야 합니다.
- 하나의 메서드에는 하나의 params 키워드만 사용할 수 있습니다.
이번 글에서는 params 키워드에 대해 알아보았습니다.
params 키워드를 사용하면 메서드를 보다 유연하게 활용할 수 있고, 가변 길이의 매개변수를 사용하여 메서드를 호출할 때 불필요한 오버로딩을 피하고 간결한 코드를 작성할 수 있습니다.
감사합니다!
728x90
'[C#] > 프로그래밍 기초' 카테고리의 다른 글
[C#] 프로그래밍 기초 : 확장 메서드(Extension Methods) (1) | 2023.11.23 |
---|---|
[C#] 프로그래밍 기초 : 람다식(=>) (18) | 2023.09.07 |
[C#] 프로그래밍 기초 : 로깅(Logging) (35) | 2023.08.08 |
[C#] 프로그래밍 기초 : Call by value & Call by reference (29) | 2023.08.02 |
[C#] 프로그래밍 기초 : foreach (20) | 2023.08.01 |