gpt4 book ai didi

c# - 触发属性更改事件的更短代码

转载 作者:太空狗 更新时间:2023-10-30 00:39:43 27 4
gpt4 key购买 nike

我有一个包含数十个属性的类需要引发属性更改事件,目前我的代码看起来像

public class Ethernet : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

private string timeStamp;

public string TimeStamp
{
get { return timeStamp; }
set
{
timeStamp = value;

if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("TimeStamp"));
}
}
}

在 C# 中是否有更短的方法来编写此类代码,我正在为每个属性执行过多的复制/粘贴操作,我觉得必须有更好的方法。

最佳答案

引用的代码不是写的线程安全的。参见 Pattern for implementing INotifyPropertyChanged?为什么下面的代码更好,以及在已接受的回复中指向 Eric Lippert 博客的链接,为什么故事不会就此结束。

    PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs("TimeStamp"));

有关实际问题的答案,请参阅 Implementing INotifyPropertyChanged - does a better way exist?包括此 C# 6.0 快捷方式。

    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("TimeStamp"));

关于c# - 触发属性更改事件的更短代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33622124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com