这是我的代码我坚持这个
public void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];
rfid = row.Cells["RFID"].Value.ToString();
string rfid2 = rfid;
}
}
private void button6_Click(object sender, EventArgs e)
{
MessageBox.Show(rfid2); >> this is where i having the error he cant find rfid2 existance
}
提前感谢您的帮助
答案 0 :(得分:2)
变量rfid2
已创建,并在另一种方法中填入了一个值,button6_Click
无法看到它。
如果要从类中的多个方法访问变量,请将其设为类的属性,如下所示。
private string rfid2;
然后你可以通过" this.rfid2"从你的方法访问它,但只能从类中访问它。
答案 1 :(得分:0)
public void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//....
string rfid2 = rfid;
}
private void button6_Click(object sender, EventArgs e)
{
MessageBox.Show(rfid2);
}
讨厌指出其中一个" duh moment" ...但是你不知道一旦dataGridView1_CellContentClick函数完成,rfid2就会超出范围吗?
如果rfid2显然是超出范围的局部变量,为什么你认为你可以在button6_Click中访问rfid2?难道编译器不应该为你捕获这个bug吗?
如果您不使用rfid2,为什么还需要rfid2?编译器应该告诉你rfid2是未使用的并用一条波浪线标记它?