c#构造函数问题(对象为空)

时间:2015-12-24 20:20:07

标签: c#

我一直试图链接构造函数,但我一直有问题,因为我有很多不同的类,彼此分享很多信息,因为它目前这就是我想做的事情

获得一个尊重form1的类,所以我可以运行某种方法

所以这就是我到目前为止所做的事情

gscadding.cs

public SoundAlis sounds;
public addingweapons dlc3gsc;
public Form1 elfgsc;
public gscadding elfy;
private gscadding elfy1;
public gscadding(addingweapons dlc3)
{
    dlc3gsc = dlc3;
}

public gscadding(gscadding elfy1)
{
    // TODO: Complete member initialization
    this.elfy1 = elfy1;
}

这是我想要进入表单1的​​类,以使用我在表单1中创建的函数

这就是我在form1中所拥有的

elfenlied_program_settings elf;
addingweapons elf_weap;
Parser elfenliedl;
gscadding elfy;

//Parser parser = new Parser("model1887_sp");

public Form1()
{

    InitializeComponent();

    updater1.CheckForUpdates();
    listBoxAdv1.Visible = false;
    elf = new elfenlied_program_settings(listBoxAdv1,elfenliedl);
    elf_weap = new addingweapons(richTextBoxEx1);
    elfenliedl = new Parser("model1887_sp");
    elfy = new gscadding(elfy);
    timer1.Start();
    elf.buttonX2 = buttonX2;
    elf.elfenform = this;
   // elfe.elfgsc = this;
    buttonX2.Visible = false;
    buttonX3.Enabled = true;
    textBoxX6.Enabled = false;
    elfenliedl.buttonX1 = buttonX1;

基本上我试图做的是用gscadding.cs来调用一个名为updatesettings()的函数;

当表单加载并且我选择一个路径时它会更新所有string = paths

但我一直得到

Error I get

1 个答案:

答案 0 :(得分:1)

elfgsc为null您必须设置它。

public gscadding(addingweapons dlc3, Form1 form)
    {
        dlc3gsc = dlc3;
        elfgsc = form;
    }

在表单构造函数

elfy = new gscadding(elfy, this);

现在您可以从gscadding类中调用表单中的方法,如下所示:

elfgsc.updatesettings();

关于你的第二个错误,将elfy传递给自己是没用的。删除elfy并替换为elfy_weap