【发布时间】:2013-11-09 17:14:21
【问题描述】:
我有重复代码的问题,想知道一种进一步缩短代码的方法。
这就是我的代码目前的样子:
private string _description = null;
public string Description
{
get
{
_description = GetLang(this.TabAccountLangs, "TextAccount");
return _description;
}
set
{
if (object.Equals(value, _description))
return;
SetLang(this.TabAccountLangs, "TextAccount", value);
OnPropertyChanged();
}
}
这个属性和其中的代码可以在一个类和整个项目的多个类中多次出现,唯一改变的是属性的名称和它自身的支持字段,以及来自方法调用的参数.
现在我想知道,是否有办法进一步缩短此代码,例如: (只是伪代码)
[DoYourSuff(FirstParam=this.TabAccountLangs, SecondParam="TextAccount", ThirdParam=value)]
public string Description { get; set; }
此示例将使用属性,但也许有更好的方法,或者该属性是执行此操作的最佳方式。我将如何实现这样的属性?
【问题讨论】:
-
奇怪的是你只在get中给_description赋值。
-
你或许可以研究一下PropertyBag的用法。
-
@Blam:我基本上只是在重新设置相同值时使用支持字段来抑制多个 OnPropertyChanged() 调用,你将如何解决这个问题?
-
我的 cmets 解释了它。
-
@Blam: ?!?抱歉没明白你的意思,能不能详细的给我解释一下?或者提供一些代码,你将如何解决这个问题,没有支持字段。
标签: c# .net properties attributes