c# - 当前上下文中不存在名称“svar”
问题描述
我对编程很陌生,我正在为我的编程课编写一个简短的刽子手游戏,我有两个私人空白,一个是你更改文本框中的文本以获得正确答案,一个是你猜一个字符。我需要将变量“svar”从第一个实例转移到另一个实例,当我尝试在第二个实例中使用变量“svar”时,我收到错误消息“当前上下文中不存在名称“svar”
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void TbxSvar_TextChanged(object sender, EventArgs e)
{
if (tbxSvar.TextLength == 6)
{
pbxGubbe.Top = 6;
tbxVisa.Text = "??????";
tbxGissa.Enabled = true;
string svar = tbxSvar.Text;
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);
}
}
解决方案
您已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
}
}
推荐阅读
- hyperledger-fabric - 向 Hyperledger Fabric 的本地实例提交事务的问题,在 IBM 区块链平台扩展中为 VSCode 预先配置
- bash - 在扩展模式匹配运算符中包含路径部分
- python - 如何在 LDA 模型中为主题建模指定 random_state
- python - 确定“空”图像/幻灯片的最佳方法
- c++ - 您如何正确使用 gdb `set substitution-path` 和 ../ 开头的引用?
- python - “UnicodeEncodeError: 'charmap' codec can't encode character” 使用 Webscraper 写入 csv 时
- git - 签出不同的分支实际上并没有改变任何东西
- url - 更改浏览器 URL 栏文本
- python - 正则表达式在文本编辑器(崇高)中工作,但不在 python 中
- hadoop - 上传到 HDFS 停止并显示警告“Slow ReadProcessor read”