named 인자 사용하기

named/optional 인자(argument)는 C# 4.0에 추가된 기능입니다. 특히, named 인자는 메소드 호출 시에 인자의 이름을 지정할 수 있는 기능으로 코드 가독성 향상에 많은 도움이 됩니다.

named 인자 사용 전후를 비교해 보면 어떤 면에서 도움이 되는지 명확합니다. 다음은 StreamReader를 생성하는 예입니다.

var reader = new StreamReader(inputStream, Encoding.UTF8,
    false, 8192, false);

이 생성자는 인자를 5개나 받습니다. inputStreamEncoding.UTF8 인자의 의미는 비교적 명확하지만, 뒤에 나오는 세 인자 false, 8192, false는 무엇을 뜻하는지 IntelliSense의 도움을 받거나 문서를 찾아보지 않는 이상 알기가 어렵습니다. 문서를 찾아보면 각각 detectEncodingFromByteOrderMarks, bufferSize,leaveOpen 인자임을 확인할 수 있습니다.

named 인자를 사용하면 코드에 이런 정보를 직접 줄 수 있습니다.

var reader = new StreamReader(inputStream, Encoding.UTF8, 
    detectEncodingFromByteOrderMarks: false, 
    bufferSize: 8192, 
    leaveOpen: false);

바뀐 코드를 보면 따로 문서를 찾아보지 않아도 각각의 인자가 어떤 의미인지 한 눈에 파악할 수 있습니다. 특히, 위 StreamReader 생성자처럼 bool 타입으로 여러 옵션을 받는 메소드의 경우, named 인자를 쓰는 것이 가독성 향상에 훨씬 도움이 됩니다.

One thought on “named 인자 사용하기

  1. Pingback: named 인자 사용하기 | 서광열의 C# 스쿨

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s