2011-03-16 81 views
2

我在VisualStudio中收到以下錯誤可訪問性不一致:參數類型一般c#界面

可訪問性不一致:參數類型「mynamespace.ProgressChangedEvent」比少的方法訪問「mynamespace.StartScreen.ReceiveUpdate(mynamespace.ProgressChangedEvent )」

我的界面看起來像這樣

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; } 
    } 


    } 
} 

的類是一種形式,它看起來像這樣

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 
    } 


} 

方法ReceiveUpdate被加亮並顯示上述錯誤。

回答

6

你必須讓你的類公開:

class ProgressChangedEvent : Event 
{ 

應該

public class ProgressChangedEvent : Event 
{ 

因爲你的公開法ReceiveUpdate()期待ProgressChangedEvent類型的變量,這個類必須是公共過於因此它可以實際上可以使用(從你的組裝以外) - 這就是爲什麼你會得到這個錯誤。

1

您需要讓您的ProgressChangedEvent類公開。

相關問題