c#bool.change事件

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 {

我可以设置一个事件侦听器,以便在bool更改时调用一个函数吗?

您应该使用C#中的属性,然后您可以在setter中添加任何您想要的处理(记录、触发事件等)

手动,是的,您可以

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();
        }
    }   
}