c# 7.0 중, 지역 함수 local functions 에 대해 알아보죠.
http://www.c-sharpcorner.com/article/local-functions-in-c-sharp7/
>> 아래 결과값은 전부 동일한 값이 출력됩니다.
My Name Is Omar Maher
1. 메소드 안에 메소드를 기술이 가능하다.
static void Main(string[] args)
{
// Method calling
GetMyName();
//Method Declaration
void GetMyName()
{
Console.WriteLine( "My Name Is Omar Maher" );
}
}
뒤집어서 해도 된다.
static void Main(string[] args)
{
//Method Declaration
void GetMyName()
{
Console.WriteLine( "My Name Is Omar Maher" );
}
// Method calling
GetMyName();
}
2. 파라미터도 넘길 수 있다.
static void Main(string[] args)
{
// Method calling
GetMyName("Omar Maher");
//Method Declaration
void GetMyName(string name)
{
Console.WriteLine($"My Name Is {name}");
}
}
3. 지역변수를 받아서 처리할 수 있다.
static void Main(string[] args)
{
string name = "Omar Maher";
// Method calling
GetMyName();
//Method Declaration
void GetMyName()
{
Console.WriteLine($"My Name Is {name}");
}
}
4. 생성자에서도 사용이 가능하며 인스턴스 생성시 호출이 가능하다.
class MyData
{
public MyData()
{
// Method calling
GetMyName();
//Method Declaration
void GetMyName()
{
Console.WriteLine($"My Name Is Omar Maher");
}
}
}
static void Main(string[] args)
{
MyData data = new MyData();
}
5. 생성자에 파라미터 넘겨서도 처리가 가능하다.
class MyData
{
public MyData(string name)
{
// Method calling
GetMyName();
//Method Declaration
void GetMyName()
{
Console.WriteLine($"My Name Is {name}");
}
}
}
static void Main(string[] args)
{
MyData data1 = new MyData("Omar Maher");
}
소스는 여기서 확인이 가능합니다.
https://github.com/omarmaher100/LocalFunctions