c# property 예제

마찬가지로 읽기 전용 속성을 만들 수 있으므로 쓰기 전용 속성을 만들 수 있습니다. 해당 속성 유형에는 get이 아닌 설정된 블록만 있습니다. 쓰기 전용 속성을 만드는 일반적인 경우는 아닙니다. 물론 필요한 경우 이러한 유형의 속성으로만 값을 설정하고 읽을 수 없습니다. 구현을 제공하지 않고 get 및 set 키워드를 사용하여 자동 구현 속성을 정의합니다. 다음 예제에서는 이름과 가격이 자동으로 구현된 속성이라는 점을 제외하면 이전 예제를 반복합니다. 이 예제에서는 매개 변수화된 생성자를 제거하여 SaleItem 개체가 이제 매개 변수 없는 생성자 및 개체 초기화자에 대한 호출로 초기화됩니다. 속성 접근자는 종종 식의 결과를 할당하거나 반환하는 한 줄 문으로 구성됩니다. 이러한 속성을 식 본자 멤버로 구현할 수 있습니다. 식 본문 정의는 => 기호 다음에 속성에서 할당하거나 검색할 식으로 구성됩니다.

좋아, 우리는 우리의 재산을 좀 더 고급로 만들었습니다. 이제 색상 변수는 ToUpper() 메서드를 반환하기 전에 적용하고 색상을 설정하려고 할 때 “Red” 값만 허용되므로 대문자로 반환됩니다. 물론 이 예제는 별로 유용하지는 않지만 속성의 잠재력을 보여 주며 이 속성은 읽기/쓰기 속성이었지만 다음에 대해 알아볼 읽기 전용 속성을 만들 수도 있습니다. 목록 10-2는 속성을 만들고 사용하는 방법을 보여 주며 Customer 클래스에는 ID 및 Name 속성 구현이 있습니다. m_id 및 m_name이라는 개인 필드도 있습니다. ID와 이름을 각각 캡슐화합니다. 각 속성에는 두 개의 접근자가 있으며, get and set이 있습니다. Theget 접근자는 필드의 값을 반환합니다. 집합 접근자는 코드 호출에 의해 할당되는 값인 값 내용이 있는 필드의 값을 설정합니다. 접근자에 표시된 값은 C# 예약된 단어입니다. 우리가 볼 수 있듯이 속성코드의 두 블록을 포함할 수 있습니다.

get 블록에는 속성에서 읽을 때 실행되는 문이 포함되어 있습니다. 집합 블록에는 속성에 쓸 때 실행되는 문이 포함됩니다: c# 속성에서 get 접근자가 속성 값을 읽는 동안 호출되고 속성에 새 값을 할당할 때 집합 접근자가 호출됩니다. 새로운 값을 제공합니다. 지금 해야 할 한 가지 질문은 “속성을 읽기 전용으로 사용할 수 있는 경우 쓰기 전용이 될 수도 있습니까?” 대답은 `예`이며 다음 섹션에서 설명합니다. Base 클래스 속성은 Derived 클래스에서 다형성으로 재정의할 수 있습니다. 그러나 가상, 재정의 등과 같은 수정자는 접근자 수준이 아닌 속성 수준에서 사용된다는 것을 기억하십시오.