HOWTO · Csharp
C# 오류: 보호 수준으로 인해 액세스할 수 없음
이 가이드에서는 보호 수준으로 인해 액세스할 수 없는 C#에서 새 프로그래머가 자주 접하는 오류에 대해 알아볼 것입니다.
이 가이드는 “보호 수준으로 인해 액세스할 수 없는” C#에서 새 프로그래머가 자주 접하는 오류에 대해 설명합니다. 그 이유는 새로운 프로그래머가 객체 지향 프로그래밍에 관한 많은 개념에 익숙하지 않기 때문입니다.
많은 시간과 연습이 필요합니다. 이 오류가 발생한 경우 해결 방법을 알려드리겠습니다.
C#의 보호 수준으로 인해 액세스할 수 없음
이 특정 오류에 대한 솔루션을 찾기 전에 C# 또는 기타 개체 지향 프로그래밍 언어에서 액세스 한정자라는 개념을 이해해야 합니다.
그렇다면 액세스 수정자는 무엇입니까? 계속 읽으십시오.
C#의 액세스 수정자란?
C#에서 액세스 한정자는 메서드 및 필드 멤버를 포함하여 클래스의 액세스 가능성 범위를 정의합니다. C#에는 6가지 종류가 있습니다.
예를 들어 클래스에 public 액세스 수정자를 지정하면 프로그램의 모든 사람이 액세스할 수 있습니다. public 수업에 참석할 수 있는 사람에는 제한이 없습니다.
C#에서 사용할 수 있는 모든 액세스 한정자를 살펴보겠습니다.
Public- 공개 회원에 대한 액세스는 제한되지 않습니다.Private- 클래스 정의만 액세스할 수 있습니다. C#에 액세스 한정자가 지정되지 않은 경우 이것이 기본 액세스 한정자입니다.Protected-Protected클래스는 클래스 선언 및 상속된 클래스 내에서만 액세스할 수 있습니다.Internal- 현재 프로젝트 어셈블리만 액세스할 수 있습니다.Protected Internal- 현재 어셈블리 및 주변 클래스에서 상속된 유형으로 액세스가 제한됩니다. 현재 프로젝트 및 파생 클래스의 모든 멤버는 변수에 액세스할 수 있습니다.Private Protected- 현재 어셈블리 내의 포함하는 클래스에서 상속된 포함된 클래스 또는 유형으로 액세스가 제한됩니다.
오류에 대한 솔루션
클래스, 해당 멤버 또는 해당 메서드에 액세스 한정자를 추가하지 않는다고 가정합니다. 이 경우 internal 액세스 수정자가 클래스에 적용되고 private 액세스 수정자는 기본적으로 해당 메서드와 필드에 적용되므로 이 오류가 발생할 수 있습니다.
변수에 액세스 수정자를 할당하지 않았기 때문에 기본 상태로 비공개로 설정됩니다. 다음 코드를 살펴보십시오.
namespace MyCsharp {
class csharprogram {
void method1() {}
class csharpin {}
}
}
위와 같이 코드를 작성했을 수 있습니다. 액세스 수정자를 할당해야 합니다.
액세스 한정자를 추가하는 방법은 다음 코드에 나와 있습니다.
namespace MyCsharp {
public class csharprogram {
public void method1() {}
public class csharpin {}
}
}
public 액세스 수정자를 클래스, 변수 및 메서드에 할당하면 패키지 전체에서 어디에서나 액세스할 수 있습니다. 어디서나 액세스할 수 있습니다.