Inconsistent accessibility: parameter type for generic c# interface
<p>I am getting the following error in VisualStudio</p>

<p><strong>Inconsistent accessibility: parameter type 'mynamespace.ProgressChangedEvent' is less accessible than method 'mynamespace.StartScreen.ReceiveUpdate(mynamespace.ProgressChangedEvent)'</strong>  </p>

<p>My interface looks like this</p>

<pre><code>public interface IObserver&lt;T&gt;
{
     void ReceiveUpdate(T ev);
}
</code></pre>

<p>My Events class looks like this</p>

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


    }
}
</code></pre>

<p>The class is a form, it looks like this</p>

<pre><code>namespace mynamespace
{
  public partial class StartScreen : Form, IObserver&lt;ProgressChangedEvent&gt;
  {


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

    #region IObserver&lt;ProgressChangedEvent&gt; Members

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

    #endregion
    }


}
</code></pre>

<p>The method <strong>ReceiveUpdate</strong> is highlighted and the above error is shown.</p>
