728x90
반응형
가변 파라미터
가변 파라미터(Variadic Parameters)란 메서드에 전달되는 인수의 개수가 가변적일 수 있도록 허용하는 기능입니다.
C#에서는 params 키워드를 사용하여 가변 파라미터를 선언할 수 있으며, 가변 파라미터는 배열 형태로 메서드에 전달됩니다.
즉, params 키워드를 사용하면 개수의 제한 없이 매개변수를 넘길 수 있다는 의미입니다.
params 키워드를 사용하기 위해 몇가지 제한이 존재합니다.
- params 키워드는 메서드의 마지막 파라미터에만 사용할 수 있습니다.
- params 키워드는 단 하나의 파라미터에만 적용될 수 있습니다.
- params 파라미터는 배열 타입이어야 합니다.
internal class Program
{
static void Main(string[] args)
{
PrintString(1, "G1", "G123", "G345");
PrintString(2, "G2", "G22", "G222", "G2222");
}
static void PrintString(int k, params string[] args)
{
Console.WriteLine(k);
foreach (string arg in args)
{
Console.WriteLine(arg);
}
}
}
위와 같이 가변 파라미터를 사용해 메서드 호출 시 전달되는 인수의 개수를 유연하게 조정할 수 있으며, 코드의 가독성과 사용성을 높일 수 있습니다.
선택적 인수
선택적 인수는 메서드에 인수를 전달하지 않아도 기본값을 사용하도록 하는 기능입니다.
기본값을 할당한 인자 뒤에는 필수로 기본값을 할당해줘야 사용 가능합니다.
- void PrintInt(int a = 10, int b) { } - (X)
- void PrintInt(int a = 10, int b = 5) { } - (O)
internal class Program
{
static void Main(string[] args)
{
PrintInt(1, 2);
PrintInt(1);
}
static void PrintInt(int a, int b = 10)
{
Console.WriteLine(a);
Console.WriteLine(b);
}
}
명명된 인수
명명된 인수는 메서드 호출 시 인수의 이름을 명시적으로 지정하여 전달하는 기능입니다.
인수의 이름을 명시적으로 지정하며 인수의 순서와 상관없이 메서드를 호출할 수 있으며, 가독성이 높아진다는 장점을
가지고 있습니다.
internal class Program
{
static void Main(string[] args)
{
PrintInt(b: 1, a: 2);
PrintInt(a: 1, b: 10);
}
static void PrintInt(int a, int b)
{
Console.WriteLine(a);
Console.WriteLine(b);
}
}
선택적 인수와 명명된 인수는 함께 사용할 수 있으며, 이를 통해 더욱 유연한 메서드 호출이 가능합니다.
728x90
반응형
'Game Programming > C#' 카테고리의 다른 글
[C#] 얕은 복사 vs 깊은 복사 (Shallow Copy vs Deep Copy) (0) | 2024.06.29 |
---|---|
[C#] 의존성 주입(DI, Dependency Injection) (0) | 2024.06.29 |
[C#] as, is (0) | 2024.06.25 |
[C#] Delegate (0) | 2024.06.25 |
[C#] Null 조건 연산자 (0) | 2024.06.25 |