c# - 无状态声明
问题描述
您好,我有简单的代码,想要一键控制标签:
private void button1_Click(object sender, EventArgs e)
{
bool T=true;
if (T)
{
label1.Text = "GOOD";
T=false;
}
else if(!T){
label1.Text = "BAD";
T=true;
}
}
问题是,每次我按下按钮时,它都声明为 true,并且每次都是 true 条件。我不能这样声明
bool T;
因为收到错误:
CS0165 使用未分配的局部变量“T”WindowsFormsApp1
我怎样才能声明一次?
解决方案
当您想在某些 cklicked 状态和未点击状态之间切换时,您需要class中的成员,而不是仅存在于方法中的变量:
class MyClass
{
bool foo;
private void button1_Click(object sender, EventArgs e)
{
if (this.foo)
{
label1.Text = "GOOD";
this.foo=false;
}
else
{
label1.Text = "BAD";
this.foo = true;
}
}
}
另请注意,我省略了 ,else if
因为 bool 只能有两种状态:true
或false
. 第三种情况是没有办法的。因此,与第一个条件不匹配的所有内容都会自动匹配第二个条件,您无需(再次)测试布尔值。
推荐阅读
- javascript - 如何在控制器中使用带有 .then 的 Sequelize 关联
- python - 找不到Pyqt5 uic模块
- spring - Spring @Value() 属性需要具有动态值的映射
- javascript - I am trying to make a table with javascript. It's looking right but don't working. Can anybody help me please?
- fortran - Fortran:读取行数未知的文件
- shell - 需要有关 unix 脚本的帮助以从特定位置读取数据并使用在查询中提取的数据
- jquery - jquery中的for循环给出错误的结果
- java - 试图编写一个从 10-1 开始的代码
- yahoo-finance - 未找到模块错误:没有名为 yahoo_fin 的模块
- dart - Dart:如何“自动”运行静态函数/代码?