[C#] bool 타입이 아닌 값을 반환 형식이 bool인 메서드에서 반환하기

Learning 

When: 1학년 7월 2일

 

How:

학교에서 수업을 할 때, 선생님께서 Physics2D.OverlapBox(); 메서드를 사용하여 그 값을 Collider2D 타입의 변수에 넣고, 그 변수를 return 하는 바닥을 체크하는 메서드를 사용하셨습니다. 이 메서드의 반환형식이 bool이였기 때문에 변수가 null인지 확인하여 그 값을 return해야 할 줄 알았는데, 그냥 Collider2D 타입을 넣어도 작동해서 몰랐던 방식이라 공부하게 되었습니다.

public bool CheckGround()
{
    Collider2D collider = Physics2D.OverlapBox(groundChecker.position, groundCheckerSize, 0, whatIsGround);
    return collider;
}

 

Understanding:

C#에는 참조 형식과 값 형식이 있는데, 여기서 값 형식은 null을 가질 수 없게 설계되어 있습니다. 그래서 null 값을 넣으려고 하면  컴파일러 오류가 발생합니다. 하지만 참조 형식 변수는 참조하고 있는 주소가 없다는 것을 표현할 수 있게 null 값이 들어갈 수 있습니다. 이 얘기를 한 이유는 C#에서 참조 형식을 return bool이나 if문에 넣게 된다면 자동으로 null인지 판별하여(return (변수) != null) null이 아니면 true, null일 경우엔 false를 반환해 주는 기능이 있기 때문에 변수 return bool 처럼 사용하기 위해선 변수가 참조 형식이어야 하기 때문입니다.

 

Result: 참조 형식은 null을 가질 수 있기 때문에 bool 값을 반환하는 return문에 넣어서 null일 경우에 false, null이 아닐 경우에 true를 반환하는 방식을 이용할 수 있습니다.

'C#' 카테고리의 다른 글

[C#] event 키워드  (1) 2025.07.09
[C#] 대리자 (Delegate)  (0) 2025.07.08
[C#] 문자열의 한 문자를 가져오기  (0) 2025.06.28
[C#] enum 키워드  (0) 2025.06.25
[C#] const 키워드  (0) 2025.06.24