1. C# .NET 기초강좌 #3
명명된 인수 및 선택적 인수
이종철, 탑크리에듀(www.topcredu.co.kr)
2. C# 명명된 인수
C# 메소드의 매개 변수 목록에서의 매개 변수 위치지정 대신 매개 변수의
이름과 인수를 연결하여 특정 매개 변수에 대한 인수를 지정할 수 있으므
로 매개 변수의 순서를 기억하거나 확인할 필요가 없다.
메소드에서 파라미터 값을 넘길 때 매개변수 이름을 정해서 넘기는 방법
3. C# 명명된 인수(예문)
static void Main(string[] args) {
Console.WriteLine(Sum(j : 1, i : 2));
SayHello(age : 20, name : "OJC");
}
static int Sum(int i, int j) {
Console.WriteLine("i={0}, j={1}", i, j);
return i + j;
}
static void SayHello(string name, int age)
{
Console.WriteLine("안녕, name = {0}, age = {1}",
name, age);
}
4. C# 선택적 인수
메서드, 생성자, 인덱서 또는 대리자의 정의에서 해당 매개 변수가 필수인
지 선택적인지 지정할 수 있는데 호출할 경우 모든 필수 매개 변수에 대한
인수는 항상 제공해야 하지만 선택적 매개 변수에 대한 인수는 생략할 수
있다.
각 선택적 매개 변수에는 기본값이 있으며 해당 매개 변수에 대해 인자를
전달하지 않으면 기본값이 사용된다.
5. C# 선택적 인수(예문1)
private int m = 88, n = 99;
//Tester(){ this.m = 0; this.n = 0; }
//위 기본생성자의 의미를 포함하고 있다.
//인자로 값이 들어오지 않으면 각각 0이 기본
Tester(int m = 0, int n = 0) {
this.m = m; this.n = n;
}
// i, j 매개변수없이 호출되면 I,j에 0이 대입
static int Sum(int i = 0, int j = 0) {
return i + j; }
static void Main(string[] args) {
Console.WriteLine(Sum(1, 2));
Console.WriteLine(Sum(j:7));
Console.WriteLine(Sum());
Tester t1 = new Tester();
Console.WriteLine("m={0}, n={1}", t1.m, t1.n);
Tester t2 = new Tester(1, 2);
Console.WriteLine("m={0}, n={1}", t2.m, t2.n);
}
6. C# 선택적 인수(예문2)
static void Main(string[] args) {
Console.WriteLine(Minus(1, 2)); //i=1, j=2
Console.WriteLine(Minus (1)); //i=1, j=0
Console.WriteLine(Minus (i : 8, j : 9)); //i=8, j=9
Console.WriteLine(Minus (j : 8, i : 9)); //i=9, j=8
Console.WriteLine(Minus ()); //i=0, j=0
}
static int Minus(int i = 0, int j = 0) // i, j 매개변수없이호출되면 0이 대입됨
{
return i - j;
}