C# 我可以重构几个类似的属性吗

C# 我可以重构几个类似的属性吗,c#,refactoring,C#,Refactoring,我有几个类,当它们的属性值发生变化时,它们会发送PropertyChanged。我有一个基类,它派生自INotifyPropertyChanged,并实现PropertyChanged事件和OnPropertyChanged方法 我的其他类派生自这个基类,然后它们的所有属性都遵循相同的模式:有一个类变量保存值,还有一个属性读取/设置这个变量,并在setter中调用OnPropertyChanged private int number = 42; public int Number {

我有几个类,当它们的属性值发生变化时,它们会发送PropertyChanged。我有一个基类,它派生自INotifyPropertyChanged,并实现PropertyChanged事件和OnPropertyChanged方法

我的其他类派生自这个基类,然后它们的所有属性都遵循相同的模式:有一个类变量保存值,还有一个属性读取/设置这个变量,并在setter中调用OnPropertyChanged

private int number = 42;
public int Number
{
    get { return number; }
    set { number = value; OnPropertyChanged("Number"); }
}

这段代码开始大量出现,我想知道是否可以通过某种方式重构它来减少每个属性的行数。或者,试图减少这六行代码(+3行注释规范)是不是太过分了?

您可能想了解一些用于注入propertychanged通知的构建时工具,一个快速的google出现了,但它不是我在公司的项目中见过的。我一时想不起来他们用了哪一个。

事实上,这是该模式“正确”实现中缺少的一行。完整的实现将包括
if(number==value)返回。现在这已经不成问题了,你为什么在乎呢?这段代码速度很快,可以被任何半个像样的IDE压缩成一行。我说继续生活,为更重要的事情担忧这只适用于Visual Studio,对吗?不幸的是,我同时使用它和Xamarin Studio(Mono)作为IDE。也许我应该像你建议的那样,把代码折叠起来,继续我的生活P@ChristofferBrodd-Reijer我怀疑(我没有深入检查)他们将东西注入到.csproj文件中,因此只要您使用的IDE使用msbuild来运行它的构建,那么您就可以在两者中使用它,尽管您需要使用visual studio来获得它提供的任何IDE集成。