c#bool.change事件
我可以设置一个事件侦听器,以便在bool更改时调用一个函数吗?您应该使用C#中的属性,然后您可以在setter中添加任何您想要的处理(记录、触发事件等) 手动,是的,您可以c#bool.change事件,c#,.net,boolean,C#,.net,Boolean,我可以设置一个事件侦听器,以便在bool更改时调用一个函数吗?您应该使用C#中的属性,然后您可以在setter中添加任何您想要的处理(记录、触发事件等) 手动,是的,您可以 public delegate void SomeBoolChangedEvent(); public event SomeBoolChangedEvent SomeBoolChanged; private bool someBool; public bool SomeBool { get {
public delegate void SomeBoolChangedEvent();
public event SomeBoolChangedEvent SomeBoolChanged;
private bool someBool;
public bool SomeBool
{
get
{
return someBool;
}
set
{
someBool = value;
if (SomeBoolChanged != null)
{
SomeBoolChanged();
}
}
}
但是,不确定这是否是您想要的。研究如何实现INotifyPropertyChanged 这里的重要问题是:当一个
bool
发生什么变化
由于bool
是一种值类型,因此不能直接传递对它的引用。因此,在bool
本身上谈论Changed
事件是没有意义的——如果一个bool
改变,它将被另一个bool
代替,而不是被修改
如果我们讨论的是引用类型上的
bool
字段或属性,则图片会发生变化。在这种情况下,公认的做法是将bool
作为属性公开(不支持公共字段),并发出“已更改”通知。hmm我迷路了。你能给我举个例子吗?完成:-)房产在很多方面都很好。我敦促你们总是将它们用于公共数据(而不是成员)。这使得更改或添加更容易,并且您可以在接口中指定它们,而这对于成员来说是无法做到的。。。
public delegate void SomeBoolChangedEvent();
public event SomeBoolChangedEvent SomeBoolChanged;
private bool someBool;
public bool SomeBool
{
get
{
return someBool;
}
set
{
someBool = value;
if (SomeBoolChanged != null)
{
SomeBoolChanged();
}
}
}