2011-03-16 3 views
2
내가으로 VisualStudio에서 다음과 같은 오류를 얻고있다

일관성 접근성 : 일반적인 C#을 인터페이스

일관성 접근성에 대한 매개 변수 유형) '

내 인터페이스 내 이벤트 클래스는이

처럼 보이는이

public interface IObserver<T> 
{ 
    void ReceiveUpdate(T ev); 
} 

처럼 보인다

namespace mynamespace 
{ 
//The event interface 
interface Event {} 

//Concrete Event 
class ProgressChangedEvent : Event 
{ 
    private int fileCount = 0; 
    private int filesProcessed = 0; 

    public ProgressChangedEvent(int fileCount, int filesProcessed) 
    { 
     this.fileCount = fileCount; 
     this.filesProcessed = filesProcessed; 
    } 

    public int FileCount 
    { 
     get{return fileCount;} 
     set{fileCount = value;} 
    } 

    public int FilesProcessed 
    { 
     get { return filesProcessed; } 
     set { filesProcessed = value; } 
    } 


    } 
} 

클래스는 그것을 ReceiveUpdate는 강조하고, 상기 오류가 도시되어이

namespace mynamespace 
{ 
    public partial class StartScreen : Form, IObserver<ProgressChangedEvent> 
    { 


    /* 
    * Lots of form code... 
    */ 

    #region IObserver<ProgressChangedEvent> Members 

    public void ReceiveUpdate(ProgressChangedEvent ev) 
    { 
     throw new Exception("The method or operation is not implemented."); 
    } 

    #endregion 
    } 


} 

방법처럼 보이는 형태이다.

답변

6

당신은 수업 공개해야 :

class ProgressChangedEvent : Event 
{ 

이어야

public class ProgressChangedEvent : Event 
{ 

ReceiveUpdate() 유형 ProgressChangedEvent의 변수를 기대하고 공개 방법은, 그 클래스는 공개해야하기 때문에 너무 그것을 할 수 있습니다 실제로 어셈블리 외부에서 사용됩니다. 그래서 그 오류가 발생합니다.

1

ProgressChangedEvent 클래스를 공개로 설정해야합니다.