c# 속성 예제

이와 같은 속성을 선언할 때 컴파일러는 속성의 get or set 접근자를 통해서만 액세스할 수 있는 전용 필드를 만듭니다. 즉, Name 속성에서 모든 클래스를 읽을 수 있지만 Student 클래스 내에서만 설정할 수 있습니다. 집합이 아닌 get 블록만 있는 속성을 선언할 수 있습니다. 이러한 종류의 속성을 읽기 전용 속성이라고 합니다. 읽기 전용 속성을 만드는 경우 전용 필드의 값만 읽을 수 있습니다. 클래스 내에서 읽기 전용 속성을 만드는 것이 일반적입니다. 우리가 원하는 것은 생성자 메서드로 설정한 다음 전체 클래스에서 해당 값을 사용하지만 생성자 외부에 값을 설정하지 않는 것입니다. 우리가 그것을 설정 하려고 하는 경우 컴파일러 오류를 throw 합니다.: 목록 10-2 속성을 만들고 사용 하는 방법을 보여줍니다. Customer 클래스에는 ID 및 Name 속성 구현이 있습니다. m_id 및 m_name이라는 개인 필드도 있습니다. ID와 이름을 각각 캡슐화합니다. 각 속성에는 두 개의 접근자가 있으며, get and set이 있습니다. Theget 접근자는 필드의 값을 반환합니다.

집합 접근자는 코드 호출에 의해 할당되는 값인 값 내용이 있는 필드의 값을 설정합니다. 접근자에 표시된 값은 C# 예약된 단어입니다. 위의 예에서 속성에 새 값을 할당하면 속성에서 값을 읽으려고 할 때 set 접근자가 호출되고 get 접근자가 호출됩니다. 추상 클래스에는 파생 클래스에서 구현해야 하는 추상 속성이 있을 수 있습니다. 다음 프로그램은 이것을 보여줍니다 – 같은 방법으로, 우리는 읽기 전용 속성을 만들 수 있습니다, 우리는 쓰기 전용 속성을 만들 수 있습니다. 해당 속성 유형에는 get이 아닌 설정된 블록만 있습니다. 쓰기 전용 속성을 만드는 일반적인 경우는 아닙니다. 물론 필요한 경우 이러한 유형의 속성으로만 값을 설정하고 읽을 수 없습니다. 클래스 범위 외부에서 이러한 필드에 직접 액세스할 수는 없지만 이러한 개인 필드에 액세스하기 위한 속성을 가질 수 있습니다.

위의 예제를 관찰하면 대문자로 변환된 변수 텍스트와 변수 텍스트를 “Rohini”로 설정한 후에도 설정된 접근자 유효성 검사가 속성에서 실패하기 때문에 텍스트를 “Suresh Dasari”로 표시했습니다. 속성의 접근자는 속성을 가져오는(읽기 또는 계산) 또는 설정(쓰기)하는 데 도움이 되는 실행 문이 포함되어 있습니다. 접근자 선언에는 get 접근자, 집합 접근자 또는 둘 다 포함될 수 있습니다. 예를 들어 – 액세서리 : “세트”와 “get”의 블록은 “접근자”로 알려져있다. 그것은 속성의 접근성을 제한하는 것이 매우 중요합니다. 접근자 에는 접근자 및 설정 접근자 와 같은 두 가지 유형이 있습니다. “get” 및 set 접근자에 따라 다양한 유형의 속성이 있습니다: 목록 10-5의 접근자가 구현이 없는 방법을 확인합니다. 자동 구현 속성에서 C# 컴파일러는 백킹 저장소 필드를 백그라운드에서 만들어 기존 속성에 있는 것과 동일한 논리를 제공하지만 기존 속성의 모든 구문도 사용하지 않아도 됩니다. Main 메서드에서 볼 수 있듯이 자동 구현 된 속성의 사용은 이전 섹션에서 배운 기존 속성과 동일 합니다.