代码之家  ›  专栏  ›  技术社区  ›  Holmes IV

无法从窗体访问类方法

  •  0
  • Holmes IV  · 技术社区  · 7 年前

    我正在设置一个非常简单的C Windows窗体应用程序,它有两个窗体,您也可以使用按钮导航。我试图添加一个类来控制数据访问,但无法从任何窗体访问该类。它们都在同一个名字空间里。 这是试图访问类dataaccesslayer.lookupcombo的窗体

    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;
            }
        } }
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Jose Nuno    7 年前

    你有两个选择。要么你宣布 LookupCombo 作为静态函数,或者必须创建 DataAccessLayer 然后通过那个对象访问函数。

    选项1:

    public static DataSet LookupCombo(string lookuptype) { (...) }
    

    选项2:

    DataAccessLayer layer = new DataAccessLayer();
    layer.LookupCombo(myString);
    

    编辑:

    关于选项1,我忘了提到您必须这样调用该函数:

    DataAccessLayer.LookupCombo(mystring);
    
        2
  •  0
  •   angelsix    7 年前

    您的类不是静态的,因此需要将其更改为静态的

    public static class DataAccessLayer { ... }
    

    你的方法lookupcombo也变为static…或者需要创建类的新实例来访问它。

    我很确定你是在追求前者,所以只要在你的类中添加static

    然后你可以用

    DataAccessLayer.LookupCombo()