重现我的问题:
_Bar = null
线上设一个断点_Bar
上以查看其值看起来Visual Studio正在不断评估ToString()
方法,导致_Bar
始终具有值FooBar
尽管将其设置为null
。有办法阻止它吗?该问题在Visual Studio 2013中无法重现。我使用的是Visual Studio Community 2019版本16.0.1。
using System;
namespace FooBar {
class Program {
static void Main(string[] args) {
new Foo();
}
class Foo {
string _Bar;
public string Bar {
get {
if (_Bar == null) {
_Bar = "FooBar";
}
return _Bar;
}
set {
_Bar = value;
}
}
public Foo() {
_Bar = null;
if (_Bar != null) {
throw new Exception("_Bar is not null.");
}
}
public override string ToString() {
return Bar;
}
}
}
}