클래스를 선언한 후
그 클래스를 매개변수로 사용하다 보면 아래와 같은 에러가 발생할 때가 있습니다.
오류 CS0051: 일관성 없는 액세스 가능성: 'WATRemoteControl.clsChildInfo' 매개 변수 형식이 'WATRemoteControl.frmEditChild.frmEditChild1(WATRemoteControl.clsChildInfo)' 메서드보다 액세스하기 어렵습니다.
분명히 해당 클래스를 다른 곳에서는 그냥 썼는데 여기서는 왜 에러가 발생할까?
문법적으로 문제도 없고, 특별한 점도 없어 보입니다.
원인
에러가 발생한 클래스를 외부(다른 namespace) 에서 사용 불가능해서 발생함.
예를 들어, A 클래스를 사용하려고 하고 A 클래스가 아래와 같을 때,
namespace N
{
class A{}
}
N 이라는 네임스페이스 안에서 A a; // 형태로 선언하면 사용하면 아무런 문제가 없는데,
다른 네임스페이스 (에서 사용하게 되면 "일관성 없는 액세스 가능성"에러가 발생합니다.
해결 방법
class 선언할때 public 으로 선언해야 합니다.
이때는 아래처럼 선언해 주면 됩니다.
namespace N
{
public class A{}
}
이렇게 되면 모든 namespace 에서 사용가능합니다.
namespace N; 은 해 줘야 겠죠^^
- [2018/02/26] List 에서 고유값 얻기 ()
- [2015/05/22] C#, 아두이노 간의 WIFI 통신으로 LCD 제어 (4566)
- [2015/03/19] ERROR: APK path is not specified for module (7988)
- [2015/03/19] android studio default activity not found (8861)
- [2015/03/13] 항상 마지막에 추가한 TEXT 보이게 ()
- [2014/01/17] ComboBox Text 편집 안되게 (14491)
- [2014/01/08] if 문에서 여러개 비교할때 (25340) *3
- [2013/12/30] C++, C# 간단한 기능 비교 (12884)
- [2013/12/18] 3자리마다 ,(콤마) 찍기 (원화, 달러 표시) (15224)
- [2013/11/26] MSVCR110.dll , MSVCR100.dll오류 (17699) *2
아, 정말 감사하네요. 딱 이 문제로 머리 아프던 중이었습니다.
좋은 하루 되세요.