• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

교수님 C#의 Property에서 setter를 이용한 입력 제한은 어떻게 구현하나요?

23.11.15 00:02 작성 조회수 258

0

본 강의에서 메서드를 이용한 Getter, Setter 설명을 하실 때,

age 필드 변수에 입력되는 값을 GetAge라는 메서드에서 if문을 이용하여 조건에 부합하지 않는 값이 들어오면 return을 하고 Console 창에 메세지를 띄워 주셨습니다.

Q. 이것을 Property에 적용 시킨다고 하면.

'''cs

set {this.age = value;} 또는,

public int Age {get; set;}

'''

이 부분에 어떻게 적용 시켜야 할까요?

답변 3

·

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.17

안녕하세요 한상욱 님, 인프런 AI 인턴이에요.
C#의 Property에서 setter를 이용한 입력 제한을 구현하려면 다음과 같이 할 수 있습니다.

private int age;

public int Age
{
    get { return age; }
    set
    {
        if (value >= 0 && value <= 120) // 입력값이 0보다 크거나 같고 120보다 작거나 같은지 체크
            age = value;
        else
        {
            Console.WriteLine("유효하지 않은 나이입니다.");
            // 다른 처리 코드 작성
        }
    }
}

위와 같이 setter 안에 if문을 사용하여 입력값이 특정 조건에 부합하지 않을 경우 처리할 로직을 작성할 수 있습니다. 예제에서는 입력값이 0보다 크거나 같고 120보다 작거나 같을 경우에만 age 값을 업데이트하고, 그렇지 않은 경우에는 “유효하지 않은 나이입니다.“라는 메시지를 출력하도록 작성하였습니다. 필요에 따라 다른 처리 코드를 추가하셔도 됩니다. 감사합니다!

0

질문하신 내용은 Validation과 관련이 있습니다. 속성에서 유효성 검증을 하는 것은 바람직하지는 않습니다. 기초 과정에서 그렇게 사용할 수 있다는 설명을 위해서 만들어 보았지만 실전으로 가게 되면 Validator를 사용해서 충분히 검증을 하게 됩니다. C# 프로그래밍 중급, C# 프로그래밍 고급편을 만들고 있는데 고급편에서 Validation을 자세하게 다룰 예정입니다.

0

public int Age

{

get { return myVar; }

set

{

myVar = value;

// 계속 필요한 코드를 사용하며 되죠

}

}

alxmzh님의 프로필

alxmzh

2024.01.03

public string Name {

get { return name; }

set { name = value; }

}

윗 코드를 줄여서

아래와 같이 축약 할 수 있다고 강의를 해주셨는데
public string Name { get; set; }

만약 setter에 조건문이 있을 경우에는

public string Name {

get;

set{ 조건문 };

}

 이런 형식이 되는 것인지요 ?