C# 检查断点时的其他输出
在编写代码时,我发现结果与检查断点时的结果不同。可能的原因是ToString函数,它在重写时具有不同的结果。为什么在覆盖后检查断点时结果不同 检查断点时,在内部调用该函数,但不知道原因 我的代码C# 检查断点时的其他输出,c#,visual-studio,C#,Visual Studio,在编写代码时,我发现结果与检查断点时的结果不同。可能的原因是ToString函数,它在重写时具有不同的结果。为什么在覆盖后检查断点时结果不同 检查断点时,在内部调用该函数,但不知道原因 我的代码 using System; namespace Test { class Program { static void Main(string[] args) { TestClass testClass = new TestCl
using System;
namespace Test
{
class Program
{
static void Main(string[] args)
{
TestClass testClass = new TestClass();
Console.Write("Test"); // Break Point
Console.ReadKey();
}
}
public class TestClass
{
public override string ToString()
{
Console.WriteLine("???");
return null;
}
}
}
结果如下
检查断点:
???
试验
非:
Test使用调试器检查testClass时,调试器将调用ToString。这印的是什么???到控制台。您知道为什么调用ToString吗?因为它就是这样工作的:@최민규 为了显示文本值,调试器对每个感兴趣的对象使用ToString方法。在本例中,TestClass.ToString的一个副作用是写入控制台。如果调试器没有理由显示该值,即您没有使用“局部变量”窗口,请不要将鼠标悬停在变量testClass上,…,它可能不会调用testClass.ToString。