C# 유니티 함수 오버로딩 시 디폴트 인수 값 적용과 관련하여 문법 주의사항

728x90
void TestFunc()
{

}
void TestFunc(float a)
{

}
void TestFunc(float a, float b)
{

}
TestFunc();
TestFunc(10);
TestFunc(10, 200);

  함수의 오버로딩과 관련하여 디폴트 값인 TestFunc()와 매개변수 인자값을 넣어준 함수들을 다음과 같이 실행할 수 있다.

 

하지만 이런 경우, TestFunc() 함수의 파라미터 값이 안맞기 때문에 오류가 생긴다.

이럴 때는 파라미터에 인자 값을 할당해주므로서 오류를 해결할 수 있다.

TestFunc() 함수는 기본적으로 float a = 0 과 float b = 10 이라는 인자 값을 가지게 되고, TestFunc(10)을 호출하면 float a = 10, float b = 10을 가지게 된다. 마찬가지로 TestFunc(10, 200)은 float a = 10, float b = 200 값으로 들어오게 된다.

마찬가지로 TestFunc() 매개변수 중 float b 값을 따로 선언해주지 않으면 다음과 같이 오류가 다시 발생함을 확인할 수 있다. 따라서 함수 오버로딩 문법 오류를 피하려면  디폴트 인수 값을 넣을 때 뒤에서부터 채워주면 된다.

728x90