C# 比较textBox1.Text和textBox2.Text

C# 比较textBox1.Text和textBox2.Text,c#,C#,所以我有这个密码 public partial class Form1 : Form { public string str; public string str2; public Form1() { InitializeComponent(); str = textBox1.Text; str2 = textBox2.Text; } private void button1_Click(obje

所以我有这个密码

public partial class Form1 : Form
{
    public string str;
    public string str2;
    public Form1()
    {

        InitializeComponent();
        str = textBox1.Text;
        str2 = textBox2.Text;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (String.IsNullOrEmpty(textBox1.Text))
        {
            MessageBox.Show("Enter Material Name Please.");     
        }

        if (str == str2)
        {
            MessageBox.Show("Materials are equal.");
        }

        else if (str != str2)
        {
            MessageBox.Show("Materials don't match.");
        }
    }
}

我想你会猜到我在这里想做什么。。你能告诉我是怎么回事吗?我是几天前开始的,所以请原谅我的知识不足

在构造函数中,而不是在单击事件处理程序中,只初始化这些字符串一次。还可以使用属性将控件与字符串映射,从而使代码更具可读性和健壮性:

// use meaningful control/variable names
string Material1 
{
    get { return textBox1.Text; }
    set { textBox1.Text = value; }
}

string Material2
{
    get { return textBox2.Text; }
    set { textBox2.Text = value; }
}

private void button1_Click(object sender, EventArgs e)
{ 
    if (String.IsNullOrWhiteSpace(Material1)) // handles also multiple spaces
    {
        MessageBox.Show("Enter Material Name Please.");  
        // return; <-- perhaps?   
    }

    if (Material1 == Material2)
    {
        MessageBox.Show("Materials are equal.");
    }
    else
    {
        MessageBox.Show("Materials don't match.");
    }
}
//使用有意义的控件/变量名称
弦材料1
{
获取{return textBox1.Text;}
设置{textBox1.Text=value;}
}
弦材料2
{
获取{return textBox2.Text;}
设置{textBox2.Text=value;}
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{ 
if(String.IsNullOrWhiteSpace(Material1))//还处理多个空格
{
MessageBox.Show(“请输入物料名称”);

//return;您只在构造函数中初始化这些字符串一次,而不是在单击事件处理程序中初始化一次。您还可以使用属性将控件与字符串映射,从而使代码更具可读性和健壮性:

// use meaningful control/variable names
string Material1 
{
    get { return textBox1.Text; }
    set { textBox1.Text = value; }
}

string Material2
{
    get { return textBox2.Text; }
    set { textBox2.Text = value; }
}

private void button1_Click(object sender, EventArgs e)
{ 
    if (String.IsNullOrWhiteSpace(Material1)) // handles also multiple spaces
    {
        MessageBox.Show("Enter Material Name Please.");  
        // return; <-- perhaps?   
    }

    if (Material1 == Material2)
    {
        MessageBox.Show("Materials are equal.");
    }
    else
    {
        MessageBox.Show("Materials don't match.");
    }
}
//使用有意义的控件/变量名称
弦材料1
{
获取{return textBox1.Text;}
设置{textBox1.Text=value;}
}
弦材料2
{
获取{return textBox2.Text;}
设置{textBox2.Text=value;}
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{ 
if(String.IsNullOrWhiteSpace(Material1))//还处理多个空格
{
MessageBox.Show(“请输入物料名称”);

//return;您试图将什么与两个
文本框
进行比较?您只需要在问题中包含代码的相关部分,空方法不会是问题的原因。您试图将什么与两个
文本框
进行比较?您只需要在问题中包含代码的相关部分,空方法s不是问题的原因。可能是op了解引用和值的好时机,当然,另一种选择是op更新空文本中的
str
str2
。\u我编辑的更改事件不需要它,但是空检查测试中messagebox之后的返回语句可能是Im改进。假设OP不想在material1为空时测试相等性。@failedprogramming:我确信这可以在许多方面得到改进,但这不是一个错误,继续在这里讨论。我还想集中讨论基本问题(我已经使用属性将字符串映射到控件)。可能是op了解引用和值的好时机,当然,另一种选择是op更新空文本中的
str
str2
。\u我编辑的已更改事件这不是必需的,但空检查测试中messagebox之后的返回语句可能是一种改进。假设op这样做了如果material1为空,我不想测试相等性。@failedprogramming:我确信这可以在许多方面得到改进,但在这里继续并不是一个错误。我还想集中讨论基本问题(我已经使用属性将字符串映射到控件)。