-
Visual Studio C# CS0051 오류C# 2016. 5. 17. 12:58
Visual Studio를 통해 C#을 하다보면 오류가 뜹니다.
CS0051 오류는 컴파일러 오류입니다.
이는 " 'type' 매개 변수 형식이 'method' 메서드보다 액세스하기 어렵습니다." 의 오류로
메서드에 전달되는 매개변수가 메서드보다 접근 가능 범위가 적을 때 발생합니다.
예를 들어 M이라는 메서드는 A라는 네임스페이스 내부 어디서든 쓸 수 있지만,
T라는 타입은 A 내부에 있는 B라는 네임스페이스에 정의되어 있을 때 발생합니다.
결국 메서드가 정의된 위치에서는 접근이 가능하지만, 메서드를 호출할 때 매개변수에
접근이 불가능할 수 있기 때문에 발생하는 것입니다.
다른 예를 코드로 보여드리겠습니다.
public class A { // F가 public이라면 B도 public로 선언해야 합니다. // B는 A클래스 내부에서만 접근할 수 있습니다.
class B { } public static void F(B b) // CS0051 { } public static void Main() { } }
출처 : MSDN
위 코드에서는 B가 class A의 private 영역이기 때문에 A의 외부에서는 접근할 수 없습니다.
하지만 F는 public 영역으로 A의 외부에서 접근 가능하기 때문에, CS0051 오류가 발생하게 됩니다.
'C#' 카테고리의 다른 글
C# string에서 숫자 format (문자열에서 숫자 형식) 정리 (0) 2016.12.26 C# 텍스트 파일 읽기 (한글 깨짐) (0) 2016.12.01 C# 문자열과 16진수간 변환 (0) 2016.04.24 C#에서 엑셀파일 읽어오기(불러오기) (0) 2016.04.13 C# 정수형 자리수 맞추기 ( 앞에 0으로 채우기) (0) 2016.04.11 댓글