C# 4.0 : 선택적 매개변수(Optional Parameter)와 명명된 인자(Named Argument)
선택적 매개변수(Optional Parameter)
메서드의 매개변수 가운데 전달되지 않는 인자가 있는 경우 미리 지정된 기본값을 사용하는 것을 의미한다.
class Person
{
public void Output(stringname, intage = 0, stringaddress = "Korea")
{
Console.Write(string.Format("{0}: {1} in {2}", name, age, address));
}
}
class Program
{
static void Main(string[] args)
{
Person p = newPerson();
p.Output("Anders");
p.Output("Winnie", 36);
p.Output("Tom", 28, "Tibet");
}
}
명명된 인자
인자의 이름으로 호출하는 측에서 값을 전달하는 기능이다.
Person p = new Person();
p.Output(address: "Tibet", name: "Tom");
p.Output(age: 5, name: "Tom", address: "Tibet");
p.Output(name: "Tom");
C# 4.0 : dynamic 예약어
dynamic
은 프로그램 실행 시에 결정되는 동적 타입이다.
class Program
{
static void Main(string[] args)
{
dynamic d = 5;
Console.WriteLine(d.ToString());
d = "abcde";
Console.WriteLine(d.ToString());
}
}
C# 5.0 : 호출자 정보
C++의 3가지 매크로상수에 대응__FUNCTION__, FILE, LINE,
usingSystem;
usingSystem.Runtime.CompilerServices;
class Program
{
static void Main(string[] args)
{
LogMessage("테스트로그");
}
static void LogMessage(string text,
[CallerMemberName] string member = "",
[CallerFilePath] string file = "",
[CallerLineNumber] int line = 0)
{
Console.WriteLine("텍스트: "+ text);
Console.WriteLine("호출한 메서드이름: "+ member);
Console.WriteLine("호출한 소스코드의 파일명: "+ file);
Console.WriteLine("호출한 소스코드의 라인번호: "+ line);
}
}