【发布时间】:2013-02-12 21:55:39
【问题描述】:
所以,在一些 C# 代码中,我有类似于这两个属性的东西:
private string _foo;
private string _bar;
public Foo
{
get;
set {
_foo = value;
Bar = _foo.Substring(3, 5);
}
}
public Bar
{
get;
set {
_bar = value;
Foo = "XXX" + _bar;
}
}
问题:C# 属性是否会受到循环引用/更新的影响,就像这个示例似乎会导致的那样?
【问题讨论】:
-
您是否在控制台应用程序中尝试过此操作并结帐?
-
那么,您在运行程序时是否看到了无限循环?
-
@PhilipHanson 也许它还在运行? :-)
-
否;我有一个问题,我正在考虑拥有两个(相关)属性......事实上,其中一个属性是上述另一个信息的子集!目前,这更像是一个概念问题,而不是具体的实现。
-
如果您将 Bar = _foo.Substring(3, 5) 替换为 _bar = _foo.Substring(3, 5) 或 _bar = value.Substring(3, 5) 应该可以在没有无限循环的情况下工作
标签: c# properties circular-reference