0

我只是想知道当变量(如 int 、 string 等)的值发生变化时是否可以“触发”某些东西?

假设我有一个TextBox tb显示 的值String MyString。所以我想做的是这样的:

MyString.ValueChanged += new EventHandler(UpdateTextBox);

public void UpdateTextBox(object sender, EventArgs e)
{
tb.Text = MyString;
}

为了不必在多行中更新文本框。有没有办法做到这一点?谢谢 !

4

2 回答 2

10

Astring 永不改变。它是不可变的(除了在幕后工作的邪恶代码)。如果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;
于 2013-01-23T11:50:16.990 回答
4

诸如int和之类的值string是不可变的。他们无法改变。

于 2013-01-23T11:50:07.227 回答