可访问性不一致:字段类型“TagHandler”的可访问性低于字段“EditTag.tag”

2023-11-29

我想创建一个可以编辑班级字段的表单TagHandler。 所以我决定作为参数传递给构造函数TagHandler tag where tag- 是我要编辑的标签。在我的表单中,我有一个字段tag我对其进行编辑,然后获取其数据。 例如,在我的主窗体中,我有一个列表框MouseDoubleClick method

void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
    int index = listBox1.SelectedIndex;
    TagHandler tg = listData[index];

    EditTag edit = new EditTag(tg);
    if (edit.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        listData[index] = edit.Tag as TagHandler;
    }
}

Where EditTag是一种形式

public partial class EditTag : Form
{
    public TagHandler tag { set; get; }
    public EditTag(TagHandler tag)
    {
        InitializeComponent();
        this.CenterToParent();
        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
        this.MaximizeBox = false;

        this.tag = tag;
        this.label2.Text = tag.Tag;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        tag.Data = richTextBox1.Text;
        this.DialogResult = System.Windows.Forms.DialogResult.OK;
    }
}

但我有这样的错误

可访问性不一致:属性类型“XmlMissionEditor.TagHandler”的可访问性低于属性“XmlMissionEditor.EditTag.tag”

可访问性不一致:参数类型“XmlMissionEditor.TagHandler”比方法“XmlMissionEditor.EditTag.EditTag(XmlMissionEditor.TagHandler)”的可访问性较差

有什么问题?我什至设置了tag字段为public但它仍然显示相同的错误。 我的课TagHandler看起来像这样

[Serializable]
class TagHandler
{
    private string data;
    private string tag;
    private Color color;
    private List<AttributeHandler> attributes;

    public TagHandler(string tag, bool close)
    {
        attributes = new List<AttributeHandler>();
        if (close)
        {
            string s = "/" + tag;
            this.tag = s;
        }
        else
        {
            this.tag = tag;
        }
    }

    public string Tag
    {
        get { return tag; }
        set { tag = value; }
    }

    public string Data
    {
        get { return data; }
        set { data = value; }
    }

    ...other methods

}

这些是问题所在:

public TagHandler tag { set; get; }
public EditTag(TagHandler tag)

后者是公共类中的公共方法。因此,它的所有参数和返回类型也应该是公共的 - 否则你会说“你可以调用它,但你无法知道你调用它的类型”(或者它返回什么,如果它是返回值)类型不是公共的。同样,属性的类型也必须是公共的。

要么将构造函数和属性设置为内部,要么将TagHandler键入公共。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可访问性不一致:字段类型“TagHandler”的可访问性低于字段“EditTag.tag” 的相关文章

随机推荐