我只是想知道当变量的值(如int,string等)发生变化时是否可以“触发”某些东西?
假设我有一个显示TextBox tb
值的String MyString
。所以我想要做的是这样的事情:
MyString.ValueChanged += new EventHandler(UpdateTextBox);
public void UpdateTextBox(object sender, EventArgs e)
{
tb.Text = MyString;
}
为了不必更新多行文本框。 有没有办法做到这一点? 谢谢!
答案 0 :(得分:10)
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;
答案 1 :(得分:4)
int
和string
等值是不可变的。他们无法改变。