C# 名称为;svar“;在当前上下文中不存在
我对编程非常陌生,我正在为我的编程课写一个简短的刽子手游戏,我有两个私人的空白,一个是当你在文本框中更改文本以获得正确答案时,另一个是当你猜测一个角色时。我需要将变量“svar”从第一个实例传输到另一个实例,当我尝试在第二个实例中使用变量“svar”时,我收到错误消息“名称“svar”在当前上下文中不存在”C# 名称为;svar“;在当前上下文中不存在,c#,C#,我对编程非常陌生,我正在为我的编程课写一个简短的刽子手游戏,我有两个私人的空白,一个是当你在文本框中更改文本以获得正确答案时,另一个是当你猜测一个角色时。我需要将变量“svar”从第一个实例传输到另一个实例,当我尝试在第二个实例中使用变量“svar”时,我收到错误消息“名称“svar”在当前上下文中不存在” 您已将svar定义为方法中的变量,因此它在其他地方不可见(除非您将其作为方法参数传递)。而是将其定义为类中的字段 public partial class Form1 : Form
您已将
svar
定义为方法中的变量,因此它在其他地方不可见(除非您将其作为方法参数传递)。而是将其定义为类中的字段
public partial class Form1 : Form
{
string svar; // <----------- place here. Now it is a 'field'
public Form1()
{
InitializeComponent();
}
private void TbxSvar_TextChanged(object sender, EventArgs e)
{
if (tbxSvar.TextLength == 6)
{
pbxGubbe.Top = 6;
tbxVisa.Text = "??????";
tbxGissa.Enabled = true;
svar = tbxSvar.Text; // <---------- use svar here
tbxSvar.Text = "";
}
else
{
tbxVisa.Text = "";
}
}
private void TbxGissa_TextChanged(object sender, EventArgs e)
{
if (tbxGissa.Text == "") return;
string gissning = tbxGissa.Text;
int index = svar.indexOf(gissning); // <---------- ...and here
}
}
公共部分类表单1:表单
{
string svar;//您应该了解字段:类似地,当您离开TXBGisa_TextChanged方法时,“int index”消失了。当我这样做时,svar变量被视为两个变量或其他什么,我使用断点查看if语句中的变量svar是否有值,它被分配了文本框的值,如expected但是当在第二个实例中调用变量时,该值为null,EDIT:Nevermind,我修复了它。谢谢
public partial class Form1 : Form
{
string svar; // <----------- place here. Now it is a 'field'
public Form1()
{
InitializeComponent();
}
private void TbxSvar_TextChanged(object sender, EventArgs e)
{
if (tbxSvar.TextLength == 6)
{
pbxGubbe.Top = 6;
tbxVisa.Text = "??????";
tbxGissa.Enabled = true;
svar = tbxSvar.Text; // <---------- use svar here
tbxSvar.Text = "";
}
else
{
tbxVisa.Text = "";
}
}
private void TbxGissa_TextChanged(object sender, EventArgs e)
{
if (tbxGissa.Text == "") return;
string gissning = tbxGissa.Text;
int index = svar.indexOf(gissning); // <---------- ...and here
}
}