0

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 \ Interface + code \timesheet\よりもアクセスしにくいMainFormMDI.cs

一貫性のないアクセス可能性:パラメータータイプ'timesheet.libs.DbObject'はメソッド'timesheet.model.user.user(timesheet.libs.DbObject)' C:\ Users \ user \ Desktop \ Interface + code \ Interface +code\よりもアクセスしにくいタイムシート\model\ user.cs

一貫性のないアクセス可能性:パラメータータイプ'timesheet.libs.DbObject'はメソッド'timesheet.model.project.project(timesheet.libs.DbObject)' C:\ Users \ user \ Desktop \ Interface + code \ Interface +code\よりもアクセスしにくいタイムシート\model\ 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とuserクラスをpublicに変更するなど、他の解決策を試しましたが、何も変わりません。userobjectとdbobjectをMainFormMDIクラスに渡して、これらのオブジェクトに対してさらにアクションを実行できるようにします。私はあなたの修正を聞いてうれしいです。

4

1 に答える 1

5

timesheet.libs.DbObject を公開する必要があります。次に、ライブラリを再コンパイルし (libs がライブラリ内にあることを示していると仮定)、それを使用するプロジェクトを再構築する必要があります。

問題は、DbObject がプライベートまたは内部のいずれかであり、パブリック メソッドにパラメーターとして渡されていることです。メソッドが public の場合、そのすべてのパラメーターの型も同様である必要があります。

于 2013-02-01T21:24:11.633 に答える