C# 通过c处理对象#

C# 通过c处理对象#,c#,winforms,dispose,C#,Winforms,Dispose,我想知道如果: private void tbName_TextChanged(object sender, EventArgs e) { var s=sender as TextBox; s.Text="Hello"; s.Dispose(); } 这是管理某些事件的正确方法吗? 我不想这样写: if(textbox1.Text.Equals(textbox2.text)) {...} 等等 编辑:我喜欢写一些函数: public bool isTextE

我想知道如果:

 private void tbName_TextChanged(object sender, EventArgs e)
 {
   var s=sender as TextBox;
   s.Text="Hello";

   s.Dispose();

 }
这是管理某些事件的正确方法吗? 我不想这样写:

if(textbox1.Text.Equals(textbox2.text))
  {...}
等等

编辑:我喜欢写一些函数:

 public bool isTextEquals(Object sender,String text)
  {
    var s =sender as TextBox;
    if(s.Text.Equals(text))
         return true;
    return false;   
  }

这个功能能正常工作吗?此代码中可能存在内存泄漏?

您为
TextChanged
事件设置的事件处理程序至少可以说是奇怪的。在正常情况下,你不太可能做这样的事情。 有更方便的方法访问引发事件的文本框

例如:

private void tbName_TextChanged(object sender, EventArgs e)
{   
   tbName.Text="Hello";
}
在这种情况下,处理文本框是一个巨大的禁忌,因为您实际上会破坏正在使用的文本框,因此该语句的效果将不是您所期望的。 事实上,您很少需要关心如何在.Net中处理对象和控件,因为框架在幕后为您管理这些方面做得相当好

现在,就比较而言,这是完全合法的,可读性更高:

var comparisonResult = sometextbox.Text == "Some text i want to compare";
相等运算符
==
将为您完成这项工作,并且以后更易于阅读和维护。不需要凌乱的
If语句

顺便说一句,我建议您阅读一些介绍.Net和C#的书籍,以便更好地了解该框架及其功能


希望这能有所帮助。

当你问什么是管理活动的正确方法时,你到底想要什么?文本比较的目的是什么?我不明白你想达到什么目的?OP很混乱,但我不认为反对票在适当的地方。每个人都从0开始,所以至少我们可以伸出援助之手:)