2015-01-09 2 views
0

그래서 나는 설정, 다음과 같은 클래스, RoomMonitor이 그래서C#에서 일관성없는 접근성?

class RoomMonitor { 
    public RoomMonitor (Account acc) { 
      // Init stuff 
    } 
} 

그리고 Account 클래스로 설정 ..

class Account { 
    public Account (DataRow row) { 
      // Init stuff 
    } 
} 

내 질문은,이 오류가 발생하지 않아야 그때 두 클래스 모두 공개적으로 맞습니까? 그럼에도 오류가 발생합니다.

Inconsistent accessibility: parameter type 'Hotel_Manager.Objects.Account' is less accessible than method 'Hotel_Manager.RoomMonitor.RoomMonitor 
+2

오류를 유발하는 코드 줄이나 관련된 속성의 클래스 정의를 표시하지 않았습니다. – crashmstr

+7

공개 * 생성자 *를 표시하지만 '공개'로 표시된 클래스는 무엇입니까? –

+0

@JohnKoerner'Objects' *는 네임 스페이스가 될 수 있습니다. –

답변

2

그래서 표시된 코드는 두 클래스의 생성자와 비슷합니다. 클래스 선언 자체는 모두 공개되어야합니다. 예 :

public class RoomMonitor 
+0

대답 주셔서 감사합니다! 당신이 옳았. 타이머가 올라 왔을 때 답을 표시 할 것입니다 :) – Dilisqq

+0

'RoomMonitor' 클래스가 public이 아닌 것은 중요합니다. 'Account' 클래스를 public으로 만들거나'RoomMonitor'의 문제가있는 생성자는 내부 클래스 여야합니다. –

1

메시지가 말하는 것과 같습니다. 계정 공용 메서드 공개 매개 변수가 아닌 매개 변수입니다.

Hotel_Manager.Objects.Accountpublic도 확인하십시오.

관련 문제