有什么方法可以访问属性的支持字段以进行验证、更改跟踪等?
像下面这样的事情可能吗?如果没有,是否有计划将其纳入 .NET 4 / C# 4?
public string Name
{
get;
set
{
if (value != <Keyword>)
{
RaiseEvent();
}
<Keyword> = value;
}
}
我遇到的主要问题是,使用自动属性在验证等方面不允许具有与具有显式支持字段的属性相同的灵活性。然而,在某些情况下,显式支持字段的缺点是允许包含它的类访问支持字段,而该类应该访问和重用属性的验证、更改跟踪等,就像可能访问的任何其他类一样财产的外部。
在上面的示例中,对支持字段的访问将限定在属性范围内,从而防止规避属性验证、更改跟踪等。
Edit:我已将 更改为 。我会提出一个类似于 value 的新关键字。field尽管我确信它已在许多现有代码中使用,但效果会很好。
不,没有。如果您想访问支持字段,请不要使用自动属性并推出您自己的属性。
我同意,如果有一个只能由该属性访问而不能由班级其他成员访问的字段,那就太好了。我会一直使用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)