inflearn logo
강의

講義

知識共有

C#プログラミングの基礎

クラスプロパティ

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

643

stleihnsc7448

投稿した質問数 1

0

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

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

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

'''cs

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

public int Age {get; set;}

'''

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

C#

回答 3

1

communityai8509

안녕하세요 한상욱 님, 인프런 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

kjlee

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

0

kjlee

public int Age

{

get { return myVar; }

set

{

myVar = value;

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

}

}

0

alxmzh

public string Name {

get { return name; }

set { name = value; }

}

윗 코드를 줄여서

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

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

public string Name {

get;

set{ 조건문 };

}

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

visual studio 2022 로 수업 들어도 되나요?

0

200

1

저는 왜 영상과 다르게 Hello World만 나올까요?

0

418

3

getter setter 질문입니다.

0

424

2

IEnumerable 강의 따라하는 중 질문합니다.

0

570

3

메서드 Override1

0

449

3

혹시 이 강의랑 같이 볼만한 책 추천해주실 수 있으실까요?

0

493

2

디렉토리를 처음부터 잘못해서 쭉 잘못 해오고 있었습니다.

0

502

3

빌드되는 경로를 사용자가 지정할 수는 없나요?

0

846

2

수업 중 질문은 어떻게 쓰나요?

0

381

2

지금 4분~8분 내용 보는 중입니다.

0

554

2

기본타입 강의 중 질문입니다.

0

294

1

19:14 실행이 안되고 꺼집니다.

0

1238

1

프레임워크 4.6.1이 없습니다.

0

380

1

람다는 수업 강의에서 안배우는건가요??

0

420

1

Student.cs에서 생성자 질문

0

423

1

질문

0

358

1

교수님이 강의에서 설명하신 내용 중 이해가 가지 않는게 있습니다.

0

318

2

교수님 혹시 강의 때 사용하시는 ppt도 공유해주실 수 있는지요?

0

526

2

double 소문자와 대문자 차이가 뭔가요?

0

514

1

FOREACH문은 다른 회차에 알려주시나요?

0

220

0

동영상 소리가 너무 작아요…

0

581

1

[질문] C# 프로그램 구조2 강의가 누락된 건가요?

0

318

1

MenuArgs를 왜 상속하나요?

0

261

4

인터페이스 질문입니다.

0

357

3