다음을 통해 공유


NotOverridable' 속성에서는 속성 접근자를 '<accessmodifier>'(으)로 선언할 수 없습니다.

업데이트: 2007년 11월

Property accessors cannot be declared '<accessmodifier>' in a 'NotOverridable' property

NotOverridable 속성의 Get 문 또는 Set 문(Visual Basic)에 Private 키워드가 포함되어 있습니다.

다음의 원인 줄에서는 NotOverridable과 Private이 Property 문에서 결합할 수 없는 이유에 대해 설명합니다.

  1. 기본 클래스 속성이나 프로시저를 재정의하지 않는 속성이나 프로시저에서는 기본 설정이 NotOverridable입니다.

  2. 기본 클래스 속성이나 프로시저를 재정의하는 파생 클래스의 속성이나 프로시저에서는 기본 설정이 Overridable입니다. 재정의 계층 구조를 종료하려면 NotOverridable로 선언합니다. 이 컨텍스트에서만 NotOverridable을 사용할 수 있습니다. 즉, NotOverridable은 Overrides와 함께 사용할 수 있습니다.

  3. 기본 클래스 속성 또는 프로시저가 Private(Visual Basic)으로 선언되면 파생 클래스가 액세스할 수 없으므로 해당 속성 또는 프로시저를 재정의할 수 없습니다. 따라서 Private과 Overridable을 함께 사용할 수 없습니다.

  4. 속성이나 프로시저를 재정의하려면 재정의 속성 또는 프로시저의 서명과 액세스 수준이 모두 동일해야 합니다. 즉, 재정의 속성이나 프로시저에서 Private을 지정할 수 없으므로 재정의 속성이나 프로시저에서 Private을 지정할 수 없습니다.

  5. NotOverridable은 재정의 속성이나 프로시저에서만 지정할 수 있으므로 Private과 함께 사용할 수 없습니다.

동일한 이유로 재정의 속성의 개별 속성 프로시저(Get 및 Set)는 Private이 될 수 없습니다.

오류 ID: BC31106

이 오류를 해결하려면

  • Private 키워드를 Get 또는 Set 문에서 제거하거나 Overrides 및 NotOverridable 키워드를 Property 문에서 제거합니다.

참고 항목

작업

방법: 액세스 수준이 혼합된 속성 선언

개념

Property 프로시저

숨기기와 재정의의 차이점