使用Delegates的可访问性不一致

Max*_*Max 1 c# delegates winforms

我试图发送一个stringform SettingsMenu使用到我的主要形式Delegate,如下图所示的结构:

在SettingsMenu表单中委派:

delegate void ClocknameReceivedEventHandler(object sender, SettingsMenu.ClocknameReceivedEventArgs e);
Run Code Online (Sandbox Code Playgroud)

SettingsMenu类中的内部类ClocknameReceivedEventArgs:

public partial class SettingsMenu : Form
{
    internal class ClocknameReceivedEventArgs : EventArgs
    {
        string _clockname;
        public string Clockname
        {
            get { return _clockname; }
        }

        public ClocknameReceivedEventArgs(string clockname)
        {
            _clockname = clockname;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在代码中更多一点SettingsMenu:

public event ClocknameReceivedEventHandler ClocknameReceived;

// Invoke the Changed event; called whenever list changes
protected void OnClocknameReceived(SettingsMenu.ClocknameReceivedEventArgs e)
{
    ClocknameReceived(this, e);
}
Run Code Online (Sandbox Code Playgroud)

SettingsMenuMain form使用以下内容捕获来自我的传入数据Event:

_settings.ClocknameReceived += new ClocknameReceivedEventHandler(ClockClocknameReceived);
Run Code Online (Sandbox Code Playgroud)

我的Main表单上实际从SettingsMenu接收字符串的方法:

private void ClockClocknameReceived(object sender, SettingsMenu.ClocknameReceivedEventArgs e)
{
    string ClockName;
    ClockName = e.Clockname;
    lblClockname.Text = ClockName;
}
Run Code Online (Sandbox Code Playgroud)

现在我在SettingsMenu类中遇到以下错误:

Error   2   Inconsistent accessibility: parameter type 'LivePigeonClient.Forms.SettingsMenu.ClocknameReceivedEventArgs' is less accessible than method 'LivePigeonClient.Forms.SettingsMenu.OnClocknameReceived(LivePigeonClient.Forms.SettingsMenu.ClocknameReceivedEventArgs)'    D:\SVN\sentul\Livepigeonflights\trunk\LivePigeonClientSolution\LivePigeonClient\Forms\SettingsMenu.cs   54  24  LivePigeonClient
Run Code Online (Sandbox Code Playgroud)

Error   1   Inconsistent accessibility: field type 'LivePigeonClient.Forms.ClocknameReceivedEventHandler' is less accessible than field 'LivePigeonClient.Forms.SettingsMenu.ClocknameReceived' D:\SVN\sentul\Livepigeonflights\trunk\LivePigeonClientSolution\LivePigeonClient\Forms\SettingsMenu.cs   51  52  LivePigeonClient
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我做错了什么?

Max*_*Max 11

我需要使用a public delegate和a public class来解决问题.