为什么我从C类中获取null#

时间:2015-10-21 06:05:46

标签: c# visual-studio-2012

我正在向一个类发送一个变量,当程序正在调试时,当我发送变量时,如果我要查看该类,那么变量中有值,但是当我需要使用它时,我变空了,这就是我正在做的事情:

Clase1 objclase = new Clase1();

private void b_Aceptar_Click(object sender, EventArgs e)
{
    //cbnombre is the name of a combobox
    objclase.retornaNombre(cb_nombre.SelectedItem.ToString());
    //MessageBox.Show(cb_nombre.SelectedItem.ToString());
}

班级有:

public class Clase1
{
    public string _nombre;
    public string nombre
    {
        get { return _nombre; }
        set { _nombre = value; }
    }

    public void retornaNombre(string nom)
    {
        _nombre = nom;
    }
}

这是我的问题:

public void button1_Click(object sender, EventArgs e)
{
    frm_IngresarNombre ventana = new frm_IngresarNombre();
    ventana.ShowDialog();

    MessageBox.Show(objclase.nombre);
}

在这个消息框中我得到了空... 希望你能帮帮我。

2 个答案:

答案 0 :(得分:0)

您是否在点击按钮的同时模仿课程?如果不是,则会在addonal change中抛出null引用异常

   `public string _nombre;
    public string nombre
    {
        get { return _nombre; }
        set { _nombre = value; }
    }`

    private string _nombre;
    public string nombre
    {
        get { return _nombre; }
        set { _nombre = value; }
    }

答案 1 :(得分:0)

使用您创建的get / set方法,您实际上并不需要您编写的赋值方法。

只需编写即可为对象指定变量 objclase.nombre = value而不是需要一个赋值方法(get / set以这种方式工作,但也兼作一个访问器)。

当您从所选项目中分配变量时,我希望您认为选择的项目未被实际选中 - 过去我可能会遇到顶级项目可见的问题,但不是考虑"选择"因此也会返回不正确的值。

有关解决该问题的信息,请参阅Selecting default item from Combobox C#