dnrkckzk 초보 유니티 개발자 개발하면서 겪는 어려움들을 해결했을 때, 인터넷 돌아다니는 흥미 있는 글 있을 때, 저장하고 공유하기 위한 공간.

카테고리

전체보기 (40)
Unity Tip (29)
뇌를 자극하는 C# 5.0.. (9)
C# (1)
Total33,698
Today49
Yesterday75

선택적 매개변수.

Unity Tip / 2018. 11. 5. 21:32



안녕하세요. 오늘은 매우 기본적인 것에 해당하지만, 저는 일 시작하고 한참 동안 몰랐었던 내용에 대해서 포스팅 하려고 합니다. 이걸 모르는 분은 없겠지 싶으면서도 저 같은 사람도 있을 것 같아서 포스팅 하겠습니다. 사실 제가 까먹지 않으려고 써놓는 목적이 더 크다고 할 수 있습니다. 포스팅 내용은 제목에서 알 수 있듯이, 선택적 매개 변수 설정입니다. 바로 코드 보시겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
    void Start()
    {
        Method_int();
        Method_int(false);
        Method_int(false2);
        Method_int(1);
    }
 
    void Method_int(bool isPrint = trueint num = 0)
    {
        if (isPrint)
        {
            print(num);
        }
        else
        {
            print(num+1);
        }
    }
}
 
cs


Method_int함수에 bool값과 int 값을 매개로 받는다고 해놨습니다. 그런데 평소와 다른 점은 기본값을 설정해줬다는 점입니다. isPrint면 숫자를 그대로 출력하고, isPrint가 아니면 1을 더해서 출력하도록 했습니다. Start에 있는 대로 한 줄씩만 남겨놓고 실행시키면 로그에 어떻게 찍히게 될까요. 

정답은 0, 1, 3, 실행 불가입니다.

왜 그런가 하면, 보면 알 수 있듯이 따로 매개 변수를 지정해주지 않으면 기본 값으로 설정해놓은 대로 처리하기 때문입니다. 첫 실행은 아무 것도 매개 변수를 지정해주지 않았기 때문에 0에 아무 것도 더하지 않고 출력합니다.

두번째 실행은 1을 더하며 출력하지만, int값은 정해주지 않았기 때문에 0값이 들어가서 1이 출력됩니다.

세번째 실행은 2에 1을 더해서 3이 출력됩니다.

그런데 네번째 실행은 되지 않습니다. 저는 형이 다르기 때문에 될 줄 알았는데요. 빌드 오류가 떠서 실행되지 않았습니다.

매개 변수 기본값을 지정하는데 있어서 순서는 대단히 중요합니다.  게다가 변수가 3개 이상 필요로 할 때, 뒷부분은 처리하지 않아도 되지만 중간을 건너 뛰고 입력하는 건 불가능한 것 같습니다. 포스팅 하면서 알았네요. 후 포스팅 할 수록 점점 초라해지는 것 같습니다. 그럼 이만 포스팅 마치겠습니다. 감사합니다.


PS.
"배틀 사천성"이란 게임을 구글 스토어에 출시했습니다. 싱글 모드도 있고, 친구랑 대전할 수 있도록 멀티 모드도 있습니다. 한 번 플레이 해주세요. 감사합니다.










Posted by dnrkckzk

댓글을 달아 주세요

최근에 달린 댓글

최근에 받은 트랙백

글 보관함