Search

함수 - 기본

학습을 하면서 저희는 C# 에서 미리 준비해둔 기능들을 사용했었습니다.
Console.WriteLine(); Console.ReadLine(); Console.Clean(); Conver.ToInt32(); ...
C#
복사
앞선 파트에서 언급했듯이 원하는 기능이 있을때 사용하면 동작하는 코드입니다.
하지만 미리 준비된 내용중에 원하는 기능이 없을 수도 있습니다.

함수 만들기

이럴때 저희는 직접 기능을 만들수 있습니다.
변수를 만들때는 다음과 같이 만들었습니다.
int name; string name = Console.ReadLine();
C#
복사
함수를 만들 때는 아래와 같은 형식을 가집니다.
void Hello() { }
C#
복사
반환형식
함수의 결과로 어떤 결과가 나타날지 알려주는 부분입니다. 자세한 내용은 return과 반환 형식 페이지를 참고해주세요. 지금은 void 그대로 사용하겠습니다.
함수이름
변수 이름과 마찬가지로 내가 마음대로 지을 수 있는 나만의 함수 이름입니다. asdjsa, sss, xxx, ttt 등 자유롭게 정할 수 있지만 함수이름을 의미 있게 부여하는 것이 좋습니다. 예를 들어 Console 함수들 ReadLine(), WriteLine(), Clean() 등 이름을 보는 것만으로 어떤 기능을 가지고 있는지 대략적으로 유추 할 수 있습니다.
중괄호 ( )
무엇인가 기능을 실행할때 붙이는 기호입니다. 대부분의 경우 함수에서 많이 사용됩니다. if for, switch 등 미리 정해진 문법이 아닌 이상 중활호가 있는 대부분은 함수라고 생각하시면 됩니다.
함수의 영역 { }
if, for, switch 등에서 사용된 것과 마찬가지로 어디까지 이 함수의 영역인지 표시하는 역할을 합니다. 어떤 기능이 미리 준비되어야 하는지 이 영역에 코드를 만들게 됩니다. 아래와 같은 코드가 있다고 가정하겠습니다.
Console.WriteLine("안녕하세요"); Console.WriteLine("반갑습니다."); void MethodSample() { Console.WriteLine("함수에 대해 알아보겠습니다."); Console.WriteLine("우선은 영역에 대해 확인해보겠습니다."); } Console.WriteLine("이해가 되셨으면 좋겠습니다.");
C#
복사
이 중 중괄호로 감싸인 부분이 함수의 영역에 해당합니다. 함수에 대해 알아보겠다고 출력하는 기능을 만들었습니다.
실행결과입니다.
실행결과 안녕하세요 반갑습니다. 이해가 되셨으면 좋겠습니다.
C#
복사
함수에 포함되는 부분은 실행되지 않는 걸 볼 수 있습니다.
이 부분은 항상 실행되는 것이 아니라 저희가 원할때 실행되도록 할 수 있습니다.

함수 사용하기

함수를 사용하기 위해서는 원하는 함수 이름뒤에 중괄호 ( ) 를 쓰면 됩니다.
함수이름();
C#
복사
예제코드
결과
처음 실습을 할때 파란색으로 표시된 부분은 결과에 나타나지 않았습니다.
지금도 코드를 작성한 중간부분에서는 나타나지 않습니다.
대신 MethodSample(); 을 맨 마지막에 작성했더니 가장 마지막에 출력되는 것을 볼수 있습니다.
함수를 실행하게 되면 그 시점에서 함수에 미리 만들어둔 기능을 끌어가가 사용하게 됩니다.
가독성이 좋지 않기 보통 위 예제처럼 로직 중간에 함수를 만들지는 않습니다.
아래 처럼 정리를 해서 서러 영역을 분리해두면 나중에 사용할때 혼동하지 않을 수 있습니다.