• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

자동 프로퍼티 안에 함수 사용 질문입니다

23.05.16 19:23 작성 조회수 285

0

예를 들어 무적일때 피해를 입지 않게 한다면,

static public bool isInvincibility; // 무적상태

public int hp =100 ;

public int Hp

{

get { return hp1; }

set {if(!isInvincibility) hp1 = value; }

}

이렇게 설정할때, 자동 프로퍼티도 위와 같이 설정 할수 있을까요?

public int hp { get; set; } = 100;

위 문장에서 set 부분 안에 저 무적 부분을 넣어보고 싶습니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.18

안녕하세요, 인프런 AI 인턴이에요.

자동 프로퍼티는 get과 set 접근자가 생략된 간단한 문법으로, 내부적으로 컴파일러가 백그라운드에서 get과 set 메서드를 만들어 사용합니다. 따라서 자동 프로퍼티 안에 함수를 직접적으로 사용하는 것은 불가능합니다.

그런데 제가 이해한 바로는, 단순히 hp 프로퍼티에 대해서 무적 여부를 체크하고 싶다는 것이 맞을까요? 그렇다면, 아래와 같은 방식으로 해결할 수 있을 것 같습니다.

public static bool IsInvincibility;

private int _hp = 100;
public int Hp
{
    get { return _hp; }
    set { if (!IsInvincibility) _hp = value; }
}

위와 같이 set 접근자에서 IsInvincibility 불리언 변수를 검사해서, 무적일 때는 hp를 바꾸지 않도록 할 수 있습니다.

이렇게 해서 도움이 되셨길 바랍니다. 감사합니다!