Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我从C类得到空值#_C#_Visual Studio 2012 - Fatal编程技术网

C# 为什么我从C类得到空值#

C# 为什么我从C类得到空值#,c#,visual-studio-2012,C#,Visual Studio 2012,我向一个类发送一个变量,当程序调试时,当我发送变量时,如果我要查看该类,变量中有值,但是当我需要使用它时,我会得到null,我正在做的是: Clase1 objclase = new Clase1(); private void b_Aceptar_Click(object sender, EventArgs e) { //cbnombre is the name of a combobox objclase.retornaNombre(cb_nombre.SelectedIt

我向一个类发送一个变量,当程序调试时,当我发送变量时,如果我要查看该类,变量中有值,但是当我需要使用它时,我会得到null,我正在做的是:

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);
}
在这个消息框中,我得到了空值。。。
希望您能帮助我。

您是否在单击按钮时模拟了课堂?如果没有,则在附加更改中将抛出null引用异常

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


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

您可以通过简单地编写
objclase.nombre=value
而不需要赋值方法(get/set以这种方式工作,但也兼作访问器)

当您从所选项目分配变量时,我希望您认为要选择的项目实际上没有被选择-我过去遇到过这样的问题,即顶部项目是可见的,但不被视为“已选择”,因此也会返回不正确的值


请参阅关于解决该问题的部分

您没有设置属性并访问相同的属性,这就是出错的原因。请参阅关于非英语代码的部分。问题主要是:1.)对象与其他函数中的对象相同吗。2.)be_Aceptor方法是否在按钮1_单击之前运行?如果两者都是真的,那就奇怪了,但我猜其中一个是假的。请在请求调试帮助时提供一个。最简单的解释是,您得到字符串的默认值。在访问nombre之前,您是否为其分配了任何内容?如果可以直接访问nombre,为什么要构建一个方法来分配它?
    private string _nombre;
    public string nombre
    {
        get { return _nombre; }
        set { _nombre = value; }
    }