C#不一致的辅助功能winform单例错误

时间:2014-03-21 21:36:18

标签: c# winforms singleton

我有这个代码,它意味着是一个弹出并保持原状然后被附加到的单例形式(基本上我有多个线程可以向用户提供查询,而且我没有&#39 ;我想要一堆它们我想要一个弹出然后"继续填充")我只是设置一个基本的测试用例类来检查逻辑但是我得到了这个错误我不明白

错误:

 Error  2   Inconsistent accessibility: field type 'System.Collections.Generic.List<ActionType>' is less accessible than field 'frmVerdict.thingsToDo'

代码:

public partial class frmVerdict : Form
{
    public List<ActionType> thingsToDo = new List<ActionType>();
    private int elementCounter = 0;
    private static frmVerdict _instance;

    public frmVerdict()
    {
        InitializeComponent();
    }
    public static frmVerdict GetInstance()
    {
        if (_instance == null) _instance = new frmVerdict();
        return _instance;
    }
    public void addAction(ActionType action)
    {
        elementCounter++;
        TextBox txtbx = new TextBox(); //TextBox txtbx = (TextBox)Controls["txtbx0001"];
        txtbx.Text = action.name;
        txtbx.Name = "txtbx" + elementCounter.ToString().PadLeft(4, '0');
        txtbx.Location = new Point(10, 30 * elementCounter);
        txtbx.Height = 20;
        txtbx.Width = 50;
        pnlVerdict.Controls.Add(txtbx); //these textboxes will be replaced by buttons
        thingsToDo.Add(action);            
    }
}

这就是我如何称呼它(这不是问题,但我希望人们知道我为什么要做单身人士)

frmVerdict form = frmVerdict.GetInstance();
if (!form.Visible)
{
    form.Show();
}
else
{
    form.BringToFront();
}
form.addAction(action);

2 个答案:

答案 0 :(得分:2)

您的ActionType类型声明为internal或没有辅助功能修饰符,默认情况下为internal

解决方案是明确地使其public或使公开类型的任何成员公开ActionType内部。

进一步阅读

答案 1 :(得分:1)

您需要将ActionType类设为public,因为类frmVerdict至少有一个将ActionType作为参数的公共方法