如何修复C#中的不可访问性错误?`

时间:2013-02-01 21:19:52

标签: c#

当我运行我的C#应用​​程序时,它显示以下错误

  

不一致的可访问性:参数类型'timesheet.libs.DbObject'比方法'timesheet.model.usertimesheet.usertimesheet(timesheet.libs.DbObject)'C:\ Users \ user \ Desktop \ Interface +更不易访问code \ Interface + code \ timesheet \ model \ usertimesheet.cs

     

不一致的可访问性:参数类型'timesheet.libs.DbObject'不如方法'timesheet.MainFormMDI.setdbobject(timesheet.libs.DbObject)'C:\ Users \ user \ Desktop \ Interface + code \接口+代码\时间表\ MainFormMDI.cs

     

访问性不一致:参数类型'timesheet.libs.DbObject'比方法'timesheet.model.user.user(timesheet.libs.DbObject)'C:\ Users \ user \ Desktop \ Interface +更不易访问代码\接口+代码\时间表\模型\ user.cs

     

不一致的可访问性:参数类型'timesheet.libs.DbObject'比方法'timesheet.model.project.project(timesheet.libs.DbObject)'C:\ Users \ user \ Desktop \ Interface +更不易访问代码\接口+代码\时间表\模型\ project.cs

我有一段login.cs为

MainFormMDI mainform = new MainFormMDI();
mainform.setdbobject(dbobject);
mainform.setuserobject(userobj);
mainform.Show();

MainFormMDI.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using timesheet.model;
using timesheet.libs;

namespace timesheet
{
    public partial class MainFormMDI : Form
    {
        private DbObject dbobject;
        private  user userobj;

        public MainFormMDI( )
        {
            InitializeComponent();
        }

        public void setdbobject(DbObject dbobject) 
        {
            this.dbobject = dbobject;
        }

        public void setuserobject(user userobj) 
        {
            this.userobj = userobj;
        }

        private void MainFormMDI_Load(object sender, EventArgs e)
        {
        }

        private void adminPanelToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }
    }
}

我尝试了其他解决方案,例如将dbobject和用户类更改为public,但没有任何更改。我想将userobject和dbobject传递给MainFormMDI类,以便能够对这些对象执行进一步的操作。我很乐意听到您的修复。

1 个答案:

答案 0 :(得分:5)

您需要将timesheet.libs.DbObject设为public。然后,您需要重新编译库(假设libs指示它在库中),然后重建使用它的项目。

问题是DbObject是私有的还是内部的,它作为参数传递给公共方法。如果方法是公共的,那么所有参数类型也必须是公式。