bboks.net™

C# 일관성 없는 액세스 가능성 본문

C# | ASP.NET/C#

C# 일관성 없는 액세스 가능성

bboks.net 2010. 10. 5. 12:41

클래스를 선언한 후 그 클래스를 매개변수로 사용하다 보면 아래와 같은 에러가 발생할 때가 있습니다.

오류 CS0051: 일관성 없는 액세스 가능성: 'WATRemoteControl.clsChildInfo' 매개 변수 형식이 'WATRemoteControl.frmEditChild.frmEditChild1(WATRemoteControl.clsChildInfo)' 메서드보다 액세스하기 어렵습니다.

분명히 해당 클래스를 다른 곳에서는 그냥 썼는데 여기서는 왜 에러가 발생할까?
문법적으로 문제도 없고, 특별한 점도 없어 보입니다.

해결 방법
절대 혼자서는 해결이 안될거 같아 인터넷의 힘을 빌렸습니다.^^
결론은 class  선언할때 public 으로 선언해야 합니다.

예를 들어, A 클래스를 사용하려고 하고  A 클래스가 아래와 같을 때,

namespace N
{
    class A{} 
}

A a; // 형태로 선언해서 사용하면 아무런 문제가 없는데,
func(A a);// 형태의 매개 변수로 사용하면 "일관성 없는 액세스 가능성"에러가 발생합니다.

이때는 아래처럼 선언해 주면 됩니다.

namespace N
{
    public class A{} 
}


[출처] 오류 CS0051: 일관성 없는 액세스 가능성: 매개 변수 형식이 ..메서드보다 액세스하기 어렵습니다