본문 바로가기

프로그래밍/C#

[C#] 아주 유용한 매개변수의 특징에 대해서 알아봅시다.

 



 


 


 


 

 

 

 

 

 

C# Prog.


 

 

처음으로 C#을 공부하면서 포스팅한 것이기에 다소 틀린 내용이 있을 수 있습니다. 그리고, 다른 언어를 알고 계시다는 가정하에 포스팅 하기때문에, 프로그래밍 언어를 처음 공부하시는 분은 다른 글도 참고하시길 바랍니다. 이 글은 <뇌를 자극하는 C# 4.0 프로그래밍>을 참고하였습니다.

 


 이번글에 다룰 매개변수의 몇가지 특징에 대해서, 정말 C#이 자바에 비해서 얼마나 세심하게 만들어졋나 라는 생각을 해보게 되었는데요.

 

 뭐.. 매개변수가 별다른게 있겠어? 라고 생각하시는 분들도 있겠지만,

이글을 읽어보시면, 정말.. 세심하다 라는 생각을 하시게 될거에요.

 

 세심!세심!

 

 책에서 밝히길 명명된(Named), 선택적(Optional) 매개변수 라는 것을 알려주는데요.

간단히 얘기하자면 다음과 같습니다.

1. 명명된(Named) 매개변수 - 매개변수명을 호출시 명시할 수 있습니다.

2. 선택적(Optional) 매개변수 - 기본값을 명시해줄 수 있습니다. 호출시 생략할 수 있습니다.  


다음과 같이 씁니다.

namespace TEST
{
    class Test
    {
        static void Main(string[] args)
        {
            int a = 100;
            int b = 200;

            Console.WriteLine("변수 a와 b의 합은 {0} 입니다.", printParam(firstArg : a, secondArg : b));
        }

 

        static int printParam(int firstArg = 0, int secondArg = 0)
        {
            Console.WriteLine("firstArg에 들어온 값" + firstArg);
            Console.WriteLine("SecondArg에 들어온 값" + SecondArg);
            return firstArg + SecondArg;
        }
    }
}

 

먼저, 호출한 부분의 진한 부분은 매개변수의 이름과 동일하게 쓰며 ':'로 씁니다. 명확하게 어떤 매개변수에 값이 들어가는지 확인이 가능하군요.

 

두번째, 함수의 매개변수 선언부분에 값을 넣었습니다. 이로써, 기본값이 정해지는 군요. 이 덕분에 호출시 생략가능하겠습니다.

 

 

 

1. 명명된 매개변수 : 순서바꾸기 테스트

 

여러, 테스트를 통해 매개변수의 특징을 확인하겠습니다.

Console.WriteLine("변수 a와 b의 합은 {0} 입니다.", printParam(SecondArg : b, firstArg : a));

 

명명된 매개변수에서 순서를 바꿔서 한번 테스트를 해봤습니다.

 

 

엇! 역시나 제가 기대했던대로, 순서를 바꾼다 하더라도, 이름을 지정해줬기때문에 해당 매개변수에 할당되는군요. ^^

 

 

 

2. 선택된 매개변수의 생략

Console.WriteLine("변수 a와 b의 합은 {0} 입니다.", printParam());

 

 이번에는 매개변수를 생략해보았습니다. 극단적으로 아예 매개변수를 없애보았습니다. 자바라면, 이런 메소드가 없기때문에 오류를 내뱉겠죠?

 

 

 

허허, 가능하군요~! 기본값이 0 값이 확인이 됩니다. 이 두가지를 알아둔다면, 함수의 사용을 보다 명확하게!!

그리고 상황에 따라서는 매우 유용하겠군요.