gpt4 book ai didi

c# - C#中的Getter/Setter问题

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

我在做

static bool isWorking
{
get { return _isWorking; }
set {
myform.treeView1.Enabled = !value;
_isWorking = value;
}
}

单步执行调试器显示它在第一个设置行处停止。在尝试这条线之后

set { myform.treeView1.Enabled = !(_isWorking = value); }

我看到 isWorking 已设置,但 myform.treeView1.Enabled 未设置。怎么回事?

最佳答案

“调试器显示它已停止”是什么意思? myform 是否可能为空,或者 myform.treeView1 是否为空?

我不记得在这种情况下的确切 评估顺序,但它可以解释您所描述的症状。了解调试器“停止”的原因是至关重要的。另一种可能性是您试图从非 UI 线程访问 UI,这会阻止对 Enabled 的分配正常工作。

哦,请不要使用您的第二个版本 - 作为副作用的赋值很少是一个好主意。我知道的唯一惯用用法是在使用 IO 循环时:

string line;
while ( (line = reader.ReadLine()) != null)

我认为这是可以接受的,因为它相当普遍。在这种情况下,看起来您可以表示“==”而不是“=”。

关于c# - C#中的Getter/Setter问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/708866/

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