재우니의 블로그


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