본문 바로가기
Programming/C#

C# 로컬 함수

by 황금표정 2021. 4. 17.

C# 7.0부터 로컬 함수라는 기능을 사용 할 수 있습니다.

함수내의 함수를 작성 할 수 있는 방법인데요 간단하게 아래와 같습니다.

public class MyClass : MonoBehaviour
{
    void Start()
    {
        TestFunction();
        CheckInt(); // Error
    }

    public void TestFunction()
    {
        int lTestInt = 100;

        if (CheckInt(lTestInt))
            Debug.Log("CheckInt True");

        Debug.Log("CheckInt False");

        bool CheckInt(int aInt) // 로컬 함수
        {
            if (aInt < 100)
                return true;

            return false;
        }
    }
}

함수 내부의 여러가지 조건이나 복잡도가 높아져서 함수화 할 때 클래스 내의 private 함수로 만들어도

클래스 내의 다른 함수에서 사용이 가능하기 때문에 의도하지 않은 사용을 야기 할 수 있습니다.

클래스 내에서 사용되지만 다른 함수내에서는 사용하지 않을 때를 생각해 볼 수 있을 것 같습니다.

 

위의 예제에서 Start함수에서 CheckInt() 함수를 사용하려고하면 에러가 날 것입니다.

이 외에도 여러가지 장점이 있으니 관련 문서를 읽어보시면 도움이 될 것 같습니다.

docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/local-functions

 

반응형