C# 오류: 보호 수준으로 인해 액세스할 수 없음

Haider Ali 2023년10월12일
  1. C#의 보호 수준으로 인해 액세스할 수 없음
  2. 오류에 대한 솔루션
C# 오류: 보호 수준으로 인해 액세스할 수 없음

이 가이드는 “보호 수준으로 인해 액세스할 수 없는” C#에서 새 프로그래머가 자주 접하는 오류에 대해 설명합니다. 그 이유는 새로운 프로그래머가 객체 지향 프로그래밍에 관한 많은 개념에 익숙하지 않기 때문입니다.

많은 시간과 연습이 필요합니다. 이 오류가 발생한 경우 해결 방법을 알려드리겠습니다.

C#의 보호 수준으로 인해 액세스할 수 없음

이 특정 오류에 대한 솔루션을 찾기 전에 C# 또는 기타 개체 지향 프로그래밍 언어에서 액세스 한정자라는 개념을 이해해야 합니다.

그렇다면 액세스 수정자는 무엇입니까? 계속 읽으십시오.

C#의 액세스 수정자란?

C#에서 액세스 한정자는 메서드 및 필드 멤버를 포함하여 클래스의 액세스 가능성 범위를 정의합니다. C#에는 6가지 종류가 있습니다.

예를 들어 클래스에 public 액세스 수정자를 지정하면 프로그램의 모든 사람이 액세스할 수 있습니다. public 수업에 참석할 수 있는 사람에는 제한이 없습니다.

C#에서 사용할 수 있는 모든 액세스 한정자를 살펴보겠습니다.

  1. Public - 공개 회원에 대한 액세스는 제한되지 않습니다.
  2. Private - 클래스 정의만 액세스할 수 있습니다. C#에 액세스 한정자가 지정되지 않은 경우 이것이 기본 액세스 한정자입니다.
  3. Protected - Protected 클래스는 클래스 선언 및 상속된 클래스 내에서만 액세스할 수 있습니다.
  4. Internal - 현재 프로젝트 어셈블리만 액세스할 수 있습니다.
  5. Protected Internal - 현재 어셈블리 및 주변 클래스에서 상속된 유형으로 액세스가 제한됩니다. 현재 프로젝트 및 파생 클래스의 모든 멤버는 변수에 액세스할 수 있습니다.
  6. Private Protected - 현재 어셈블리 내의 포함하는 클래스에서 상속된 포함된 클래스 또는 유형으로 액세스가 제한됩니다.

오류에 대한 솔루션

클래스, 해당 멤버 또는 해당 메서드에 액세스 한정자를 추가하지 않는다고 가정합니다. 이 경우 internal 액세스 수정자가 클래스에 적용되고 private 액세스 수정자는 기본적으로 해당 메서드와 필드에 적용되므로 이 오류가 발생할 수 있습니다.

변수에 액세스 수정자를 할당하지 않았기 때문에 기본 상태로 비공개로 설정됩니다. 다음 코드를 살펴보십시오.

namespace MyCsharp {
  class csharprogram {
    void method1() {}
    class csharpin {}
  }
}

위와 같이 코드를 작성했을 수 있습니다. 액세스 수정자를 할당해야 합니다.

액세스 한정자를 추가하는 방법은 다음 코드에 나와 있습니다.

namespace MyCsharp {
  public class csharprogram {
    public void method1() {}
    public class csharpin {}
  }
}

public 액세스 수정자를 클래스, 변수 및 메서드에 할당하면 패키지 전체에서 어디에서나 액세스할 수 있습니다. 어디서나 액세스할 수 있습니다.

작가: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn