我有一个类,每次更改属性时都需要调用刷新函数。所以我发现自己写了很多这些:
private double _x;
public double X
{
get { return _x; }
set
{
_x = value;
refresh();
}
}
每个属性的刷新功能始终相同。 有没有更短的方法来做到这一点?
此外,我始终通过private double _x
访问double X
,因此如果我可以以某种方式集成public double X { get; set}
方法,refresh()
之类的内容可以正常工作。
答案 0 :(得分:2)
纯C#方式是将重复代码移动到方法。
在你的情况下,像这样:
void Set<T>(ref T field, T value)
{
field = value;
refresh();
}
并使用它:
private double _x;
public double X { get { return _x; } set { Set(ref _x, value); } }
答案 1 :(得分:1)
the nuget package https://github.com/Fody/PropertyChanged
您可以轻松地为fody创建一个类似的包,它将调用您的刷新功能。