Notice
Recent Posts
Recent Comments
Link
관리 메뉴

nomad-programmer

[Programming/C#] 로컬 함수 본문

Programming/C#

[Programming/C#] 로컬 함수

scii 2020. 9. 7. 20:37

로컬 함수 (Local Function)는 메소드 안에서 선언되고, 선언된 메소드 안에서만 사용되는 특별한 함수이다.

클래스의 멤버가 아니기 때문에 메소드가 아니라 함수 (Function)라고 부른다. 선언 방법은 메소드와 다르지 않지만, 로컬 함수는 자신이 존재하는 지역에 선언되어 있는 변수를 사용할 수 있다.

로컬 함수는 메소드 밖에서는 다시 쓸 일 없는 반복적인 작업을 하나의 이름 아래 묶어 놓는 데 제격이다. 람다식과 더불어 프로그래머에게 코드를 간추릴 수 있는 또 하나의 옵션을 제공하는 것이다.

using System;

namespace CSharpExample
{
    class MainApp
    {
        static string ToLowerString(string input)
        {
            // arr -> char[]
            var arr = input.ToCharArray();

            for(int i=0; i<arr.Length; i++)
            {
                arr[i] = ToLowerChar(i);
            }

            // 로컬 함수 : 65~90 아스키 값은 +32하여 반환
            char ToLowerChar(int i)
            {
                if (arr[i] < 65 || arr[i] > 90)
                {
                    return arr[i];
                }
                return (char)(arr[i] + 32);
            }

            return new string(arr);
        }
        static int Main(string[] args)
        {
            Console.WriteLine(ToLowerString("Hello!"));
            Console.WriteLine(ToLowerString("Good Morning."));
            Console.WriteLine(ToLowerString("Method()"));

            return 0;
        }
    }
}

/* 결과

hello!
good morning.
method()

*/
Comments