>>184
双方向データバインディングとか使うとありがたみがわかるかも

public string Name {
    get { 
        return name;
    }
    set {
        name = value;
        if (NameChanged != null) {
            NameChanged(this, EventArgs.Empty);
        }
    }    
}