C# 无法从窗体访问类方法
我正在设置一个非常简单的C#windows窗体应用程序,它有两个窗体,您也可以通过按钮导航。我试图添加一个类来控制数据访问,但我无法从任何表单访问该类。它们都在同一个名称空间中。 这是尝试访问DataAccessLayer.LookupCombo类的表单C# 无法从窗体访问类方法,c#,winforms,C#,Winforms,我正在设置一个非常简单的C#windows窗体应用程序,它有两个窗体,您也可以通过按钮导航。我试图添加一个类来控制数据访问,但我无法从任何表单访问该类。它们都在同一个名称空间中。 这是尝试访问DataAccessLayer.LookupCombo类的表单 namespace LoanSaleControlPanel { public partial class EditParticipant : Form { public EditParticipant()
namespace LoanSaleControlPanel
{
public partial class EditParticipant : Form
{
public EditParticipant()
{
InitializeComponent();
}
private void EditParticipant_Load(object sender, EventArgs e)
{
DataSet Actions = new DataSet();
Actions = LookupCombo("LST_Participant");
}
}
这是类声明
namespace LoanSaleControlPanel {
class DataAccessLayer
{
public DataSet LookupCombo(string lookuptype)
{
//Execute Queries and save results into variables
DataSet Data = new DataSet();
return Data;
}
} }
您的类不是静态的,因此需要更改为静态
public static class DataAccessLayer { ... }
你的方法LookupCombo也变为静态。。。或者您需要创建类的新实例来访问它
我很确定你在追求前者,所以只需在你的类中添加static
然后您可以使用
DataAccessLayer.LookupCombo()
你有两个选择。要么将
LookupCombo
函数声明为静态函数,要么必须创建DataAccessLayer
的实例,然后通过该对象访问该函数
备选案文1:
public static DataSet LookupCombo(string lookuptype) { (...) }
备选案文2:
DataAccessLayer layer = new DataAccessLayer();
layer.LookupCombo(myString);
编辑:
关于选项1,我忘了提到您必须像这样调用该函数:
DataAccessLayer.LookupCombo(mystring);
在同一名称空间中是不够的。您需要通过类对象访问该方法<代码>数据集操作=新建DataAccessLayer().LookupCombo(“LST_参与者”)还请注意,没有理由创建一个新的
DatSet
对象,您将在方法调用中丢弃它。“操作”只在Load方法中起作用。如果希望表单的其余部分可以使用它,则必须在表单级别声明它。您发布的代码不应编译,因此您应该告诉我们您遇到的错误。无法使选项1正常工作,但选项2看起来很有希望。让我再测试一下,然后回来谢谢。