c# 프로퍼티 예제

위의 예제를 관찰하면 대문자로 변환된 변수 텍스트와 변수 텍스트를 “Rohini”로 설정한 후에도 설정된 접근자 유효성 검사가 속성에서 실패하기 때문에 텍스트를 “Suresh Dasari”로 표시했습니다. get 메서드는 변수를 반환해야 하지만 set 메서드는 변수에 값을 할당해야 합니다. 우리의 예는 얻는 것처럼 간단하지만 확장 할 수 있습니다. 속성에 대해 알아야 할 또 다른 점은 한 가지 방법만 필요하다는 사실입니다 . 이렇게 하면 읽기 전용 및 쓰기 전용 속성을 정의할 수 있습니다. 다음은 속성이 유용한 이유에 대한 더 좋은 예입니다. 속성 접근자는 종종 식의 결과를 할당하거나 반환하는 한 줄 문으로 구성됩니다. 이러한 속성을 식 본자 멤버로 구현할 수 있습니다. 식 본문 정의는 => 기호 다음에 속성에서 할당하거나 검색할 식으로 구성됩니다. C#의 속성은 클래스가 개인 필드를 노출하는 유연한 메커니즘을 제공하는 클래스의 멤버입니다.

이 문서에서는 C# 속성의 사용 및 구현에 대해 설명합니다. 정적 속성 및 추상 속성에 대해서도 알아봅니다. 여기서 필드 “name”은 비공개로 표시되므로 이 필드를 변경하려면 속성(이름)을 호출해야만 변경할 수 있습니다. Visual Studio에서는 자동 속성을 사용하라는 제안을 받을 수도 있습니다: get 속성 접근자는 속성 값을 반환하는 데 사용되며 set 속성 접근자는 새 값을 할당하는 데 사용됩니다. 이러한 접근자는 서로 다른 액세스 수준을 가질 수 있습니다. 자세한 내용은 접근자 접근성 제한을 참조하십시오. 속성은 속성을 통해 읽기 및 쓰기를 통해 클래스의 필드를 보호할 수 있는 기회를 제공합니다. 다른 언어에서는 특수 한 getter 및 setter 메서드를 구현 하는 프로그램에 의해 종종 수행 됩니다. C# 속성은 이러한 유형의 보호를 활성화하는 동시에 필드처럼 속성에 액세스할 수 있도록 합니다. 즉, Name 속성에서 모든 클래스를 읽을 수 있지만 Student 클래스 내에서만 설정할 수 있습니다. Base 클래스 속성은 Derived 클래스에서 다형성으로 재정의할 수 있습니다. 그러나 가상, 재정의 등과 같은 수정자는 접근자 수준이 아닌 속성 수준에서 사용된다는 것을 기억하십시오.

c#에서 속성은 매개 변수를 허용하지 않으며 응용 프로그램에서 참조 또는 out 매개 변수로 속성을 전달해서는 안됩니다. 속성에 get 및 set 접근자가 모두 있는 경우 둘 다 자동 구현되어야 합니다. 구현을 제공하지 않고 get 및 set 키워드를 사용하여 자동 구현 속성을 정의합니다. 다음 예제에서는 이름과 가격이 자동으로 구현된 속성이라는 점을 제외하면 이전 예제를 반복합니다. 이 예제에서는 매개 변수화된 생성자를 제거하여 SaleItem 개체가 이제 매개 변수 없는 생성자 및 개체 초기화자에 대한 호출로 초기화됩니다. 속성 접근자에서 추가 논리가 필요하지 않은 경우 자동 구현 속성을 사용하여 속성을 보다 읽기 쉽고 간결한 방식으로 선언할 수 있습니다. 자동 구현 속성은 get 및 set 키워드로만 구성되며, 예를 들어 위의 프로그램은 다음과 같이 속성 X로 수정할 수 있습니다. 속성은 개인 필드의 값을 읽거나 쓰거나 계산하는 유연한 메커니즘을 제공하는 멤버입니다. 속성은 공용 데이터 멤버인 것처럼 사용할 수 있지만 실제로는 접근자라고 하는 특수 메서드입니다. 이를 통해 데이터에 쉽게 액세스할 수 있으며 방법의 안전성과 유연성을 높이는 데 도움이 됩니다. 속성은 읽기 전용으로 만들 수 있습니다. 이 작업은 속성 구현에서 get 접근자만 있으면 됩니다.

10-3을 나열하면 읽기 전용 속성을 만드는 방법을 보여 줍니다.