我将bool从一个表单传递到另一个表单,我已经尝试声明'Private bool useDBServer;'在我班级的顶部,但这会创建一个新的变量。
我做错了什么?
由于
下面的表格1:
Form2 frm = new Form2(dataGridView1, _useDBServer, _useOther);
下面的表格2:
public Form2(DataGridView dgv, bool useDBServer, bool useOther)
{
if(useDBServer) //<---- works here
{
//stuff
}
}
private void readRegistry()
{
if(useDBServer) //<---- but not here
{
//stuff
}
}
答案 0 :(得分:5)
如果要在不同的方法中使用该变量,则必须将其作为实例变量,并在构造函数中复制该值:
private readonly bool useDBServer;
public Form2(DataGridView dgv, bool useDBServer, bool useOther)
{
this.useDBServer = useDBServer; // Copy parameter to instance variable
if(useDBServer)
{
//stuff
}
}
private void readRegistry()
{
if(useDBServer) // Use the instance variable
{
//stuff
}
}
答案 1 :(得分:0)
public Form2(DataGridView dgv, bool _useDBServer, bool useOther)
{
useDBServer = _useDBServer;
if(useDBServer) //<---- works here
{
//stuff
}
}
答案 2 :(得分:0)
做这样的事情:
bool localUseDBServer;
public Form2(DataGridView dgv, bool useDBServer, bool useOther)
{
localUseDBServer = useDBServer;
if(localUseDBServer)
{
//stuff
}
}
private void readRegistry()
{
if(localUseDBServer)
{
//stuff
}
}
答案 3 :(得分:0)
您正在向构造函数传递参数。如何在课堂上的方法中使用它?您需要在实例成员变量中“保存”参数。或者您需要将构造函数中的参数转发给方法。