2015-10-21 117 views
-2

我送一个变量的一类,而在程序运行时调试,当我发送的变量,如果我要去看类,还有变量中的值,但是当我需要使用它,我越来越空,这里是我在做什么:为什么我得到空从类C#

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); 
} 

在此留言箱我收到... 希望你能帮助我。

+0

您没有设置该属性和访问相同的,这就是为什么得到错误。 – Amit

+1

见[此元交](http://meta.stackoverflow.com/questions/266563/do-non-english-words-increase-the-probability-of-receiving-downvotes/)在非英语的代码。 – nvoigt

+0

这个问题大部分是:1)与其他函数中的objclase相同。 2)be_aceptar方法是否在button1_click之前运行?如果两个都是真的,那么它很奇怪,但我猜,这两个中的一个是假的 – Thomas

回答

0

你有没有模仿课堂,而点击按钮?如果不是有将抛出空引用异常的addonal变化

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

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

使用创建的get/set方法,你实际上并不需要你写的分配方法。

您可以通过简单地编写 objclase.nombre = value而不是需要赋值方法(get/set以此方式工作,但也作为访问器兼用)来为您的对象分配变量。

当您从选定的项目分配变量,我希望你相信实际上没有选择要选择的项目 - 我已经在过去其中顶部项目可见有问题,但没有考虑“选择“因此也会返回一个不正确的值。

Selecting default item from Combobox C#至于解决这一问题