C# 为什么我从C类得到空值#
我向一个类发送一个变量,当程序调试时,当我发送变量时,如果我要查看该类,变量中有值,但是当我需要使用它时,我会得到null,我正在做的是: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
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; }
}