gpt4 book ai didi

c# - 在 C# 中奇怪地执行 get 访问器?

转载 作者:太空狗 更新时间:2023-10-29 23:59:20 24 4
gpt4 key购买 nike

我设置了一个简单的程序来测试 get 访问器中的代码是如何执行的(因为我在另一个项目中遇到了一些问题),并发现了一些很奇怪的东西:

class Program {
static void Main(string[] args) {
var test = new TestClass();
var testBool = test.TestBool;
}
}

public class TestClass {
private bool _testBool = true;
public bool TestBool {
get {
if (_testBool) {
Console.WriteLine("true!");
} else {
Console.WriteLine("false! WTF!");
}
_testBool = false;
return _testBool;
}
}
}

我希望输出是

true!

但我得到的却是

true!

false! WTF!

这是怎么回事?

最佳答案

如果非要我猜的话,我会说 调试器 运行它一次是为了在 IDE 中显示局部变量的成员。

如果您在属性中有副作用(您不应该这样做),请不要在 IDE 中运行它:)

在控制台试试;它应该在那里表现得很好。

关于c# - 在 C# 中奇怪地执行 get 访问器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4642393/

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