gpt4 book ai didi

c# - 相互更新的属性

转载 作者:行者123 更新时间:2023-11-30 20:03:32 25 4
gpt4 key购买 nike

所以,在一些 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# 属性是否受到循环引用/更新的影响,就像这个例子似乎会导致的那样?

最佳答案

您可以通过直接更新隐藏字段来避免无限循环,如下所示:

private string _foo;
private string _bar;

public string Foo
{
get { return _foo; }
set {
_foo = value;
_bar = _foo.Substring(3, 5);
}
}

public string Bar
{
get { return _bar; }
set {
_bar = value;
_foo = "XXX" + _bar;
}
}

这将绕过其他属性的 setter ,从而消除循环。

但是...这通常会导致以后的维护问题。就个人而言,我会尝试寻找替代设计。

关于c# - 相互更新的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14842572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com