C# 中 get 访问器执行异常?
我设置了一个简单的程序只是为了测试 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!
是这是怎么回事?
I set up a simple program just to test how the code inside a get accessor executes (since I had been having some issues in another project), and found something quite strange:
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;
}
}
}
I expected the output to be
true!
But what I got instead was
true!
false! WTF!
Just what is going on here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论