我想知道如果发生了什么:
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;
}
这个功能能运作良好吗?可以在此代码中发生一些内存泄漏吗?
答案 0 :(得分:2)
至少可以说,TextChanged
事件的事件处理程序似乎很奇怪。在正常情况下,你不太可能做这样的事情。
有更方便的方法来访问引发事件的文本框。
例如:
private void tbName_TextChanged(object sender, EventArgs e)
{
tbName.Text="Hello";
}
在这种情况下,处理文本框是一个非常大的否定,因为您实际上会破坏正在使用的文本框,因此该语句的效果将不是您所期望的。 事实上,您很少需要关注.Net中的对象和控件的处理,因为框架在幕后为您管理这些对象时做得非常好。
现在就比较而言,这是完全合法的,而且更具可读性:
var comparisonResult = sometextbox.Text == "Some text i want to compare";
等于运算符==
将为您完成工作,以后将更容易阅读和维护。 If Statement
无需弄乱。
在旁注中,我建议您获取一些介绍性的.Net和C#书籍,以便更好地理解框架及其功能。
希望这有帮助。