我是 Visual c# 中的一个全新的 n00bie,我遇到了一个让我发疯的奇怪障碍!这是有问题的代码(是的,一个 Hello World 程序):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Equals("Goodbye Cruel World"))
{
textBox1.Text = ("Hello World!");
}
else { textBox1.Text = ("Goodye Cruel World"); }
}
}
}
我也尝试使用 textBox1.Text=="Goodbye Cruel World"; 作为 if 语句的评估参数,在编译器中没有错误(顺便说一下,我使用的是 Visual Studio 2012 Ultimate)
程序运行良好。我将文本框文本属性初始化为“Hello World!” 使用 VS 的设计 GUI。我面临的问题是代码仅在用户第一次单击按钮时才有效。按钮后的任何时间都不会执行任何操作。
我调试了代码,并确保在用户第一次单击按钮时适当地更改了文本框文本属性。当用户第二次单击按钮时(或此后的任何时间),一旦代码到达 if 语句,它就会跳过它,就好像其中表达式的评估是 FALSE。事实上,跟上调试工具的步伐,按钮只会继续执行 else 块中的代码,尽管我知道我正在使用的 TextBox.Text 属性之前已被适当地更改过。
我在这里想念什么???为什么按钮不只是在我硬编码的两个字符串之间切换文本框文本值?