我可以将事件处理程序添加到字符串中吗?
本文关键字:字符串 添加 事件处理 程序 我可以 | 更新日期: 2023-09-27 17:55:15
我只是想知道当变量(如 int、字符串等)的值发生变化时是否可以"触发"某些东西?
假设我有一个显示String MyString
值的TextBox tb
。所以我想做的是这样的:
MyString.ValueChanged += new EventHandler(UpdateTextBox);
public void UpdateTextBox(object sender, EventArgs e)
{
tb.Text = MyString;
}
为了不必在多行中更新文本框。有什么办法可以做到这一点吗?谢谢!
string
永远不会改变。它是不可变的(除了在引擎盖下工作的邪恶代码)。如果MyString
是一个属性,那么您当然可以有一个MyStringChanged
事件,并将其挂接到事件处理程序。
private string myString;
public string MyString {
get { return myString; }
set {
if(myString != value) {
myString = value;
var handler = MyStringChanged;
if(handler!=null) handler(this,EventArgs.Empty);
}
}
}
public event EventHandler MyStringChanged;
int
和 string
等值是不可变的。他们无法改变。