set 키워드(C# 참조)
set
키워드는 속성 또는 인덱서 요소에 값을 할당하는 속성 또는 인덱서의 accessor 메서드를 정의합니다. 자세한 내용 및 예제는 속성, 자동으로 구현된 속성 및 인덱서를 참조하세요.
속성 get
및 set
접근자가 프라이빗 지원 필드에서 값을 설정하거나 검색하는 것 외에 다른 작업을 수행하지 않는 간단한 경우 자동으로 구현된 속성을 사용할 수 있습니다. 다음 예제에서는 Hours
자동으로 구현된 속성으로 구현합니다.
class TimePeriod3
{
public double Hours { get; set; }
}
Important
인터페이스 속성 선언이나 부분 속성에 대한 구현 선언에는 자동으로 구현된 속성이 허용되지 않습니다. 컴파일러는 자동으로 구현된 속성과 일치하는 구문을 구현 선언이 아닌 선언 선언으로 해석합니다.
접근자 본문 중 하나를 구현해야 할 수 있습니다. C# 13에서 미리 보기 기능으로 추가된 키워드는 field
필드 백업 속성을 선언합니다. 필드 지원 속성을 사용하면 다른 접근자를 직접 작성하는 동안 컴파일러에서 하나의 접근자를 생성할 수 있습니다. 키워드를 field
사용하여 컴파일러 합성 지원 필드에 액세스합니다.
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
Important
field
키워드는 C# 13의 미리 보기 기능입니다. 상황별 키워드를 사용하려면 .NET 9를 preview
사용하고 field
프로젝트 파일에서 요소를 설정 <LangVersion>
해야 합니다.
이름이 지정된 field
필드가 field
있는 클래스에서 키워드 기능을 사용하는 데 주의해야 합니다. 새 field
키워드는 속성 접근자의 범위에 명명된 field
필드를 숨깁니다. 변수의 field
이름을 변경하거나 토큰을 사용하여 @
식별자를 .로 @field
참조 field
할 수 있습니다. 키워드에 대한 field
기능 사양을 읽어 자세히 알아볼 수 있습니다.
대체로 set
접근자는 앞의 예제와 마찬가지로 값을 할당하는 단일 명령문으로 구성됩니다. set
접근자를 식 본문 멤버로 구현할 수 있습니다. 다음 예제에서는 get
및 set
접근자 둘 다를 식 본문 멤버로 구현합니다.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
다음 예제에서는 Seconds
라는 속성의 get
및 set
접근자를 둘 다 정의합니다. _seconds
라는 private 필드를 사용하여 속성 값을 지원합니다.
class TimePeriod
{
private double _seconds;
public double Seconds
{
get { return _seconds; }
set
{
if (value < 0)
{
throw new ArgumentOutOfRangeException(nameof(value), "The value of the time period must be non-negative.");
}
_seconds = value;
}
}
}
C# 언어 사양
자세한 내용은 C# 언어 사양을 참조하세요. 언어 사양은 C# 구문 및 사용법에 대 한 신뢰할 수 있는 소스 됩니다.
참고 항목
.NET