Notice
Recent Posts
Recent Comments
Link
관리 메뉴

nomad-programmer

[Programming/C#] 네임드 매개 변수 본문

Programming/C#

[Programming/C#] 네임드 매개 변수

scii 2020. 9. 7. 18:22

메소드를 호출할 때 매개 변수 목록 중 어느 매개 변수에 데이터를 할당할 것인지를 지정하는 것은 "순서"이다. 대개의 경우 순서에 근거해서 매개 변수에 데이터를 할당하는 스타일을 사용하지만, C#은 또 다른 스타일도 지원한다. 물론 C#뿐 아니라 다른 언어에서도 지원한다.

명명된 매개 변수 (Named Parameter)

말 그대로 메소드를 호출할 때 매개 변수의 이름에 근거해서 데이터를 할당하는 기능이다. 명명된 매개 변수를 사용하기 위해 메소드 선언에 손댈 일은 전혀 없다. 메소드를 호출할 때만 매개 변수의 이름 뒤에 콜론(:)을 붙인 뒤 그 뒤에 할당할 데이터를 넣어주면 된다. 

using System;

namespace BrainCSharp
{
    class HelloWorld
    {
        static void PrintProfile(string name, string phone)
        {
            Console.WriteLine($"name: {name}, phone: {phone}");
        }

        static int Main(string[] args)
        {
            PrintProfile(name: "haha", phone: "000-0000-0000");
            PrintProfile(phone: "111-1111-1111", name: "hoho");
            PrintProfile("hehe", "123-1234-1234");
            PrintProfile("huhu", "555-1234-5555");

            return 0;
        }
    }
}

/* 결과

name: haha, phone: 000-0000-0000
name: hoho, phone: 111-1111-1111
name: hehe, phone: 123-1234-1234
name: huhu, phone: 555-1234-5555

*/

얼핏 보기에는 명명된 매개 변수가 더 많은 코드를 타이핑하도록 만들므로 생산성을 떨어뜨리는 것 같다. 하지만 일단 명명된 매개 변수를 이용해서 코드를 작성해놓고 나면 코드가 훨씬 읽기 좋아진다.

매번 명명된 매개 변수를 사용하는 것은 어렵겠지만, 매개 변수가 너무 많아 어느 매개 변수에 어느 데이터를 할당하고 있는지 분간이 어려운 경우에는 명명된 매개 변수가 분명히 도움이 될 것이다.

Comments