3

我正在 Visual Studio 2010 中开发一个 C# 项目。为了理解它的逻辑,我使用 F10/F11 逐步完成它。首先,我在 Main() 的第一行代码处设置了一个断点。我希望它在它执行的每一行代码上都会中断。但实际上它并没有破坏类初始化函数和类成员字段初始化代码。我的意思不仅是 Main() 函数所在的类,还包括其他所有类。例如,Main() 中的第一行代码是

IApplicationContext ctx=ContextRegistry.GetContext();

当我在这行代码上按 F11 时,它会跳转到 GetContext() 中的第一行代码。但在此之前,首先要执行ContextRegistry的类成员初始化代码和静态类初始化代码。所以我需要在那些地方手动设置断点,以清楚地看到程序实际做了什么。这很不方便,因为我需要在每个这样的类中设置断点。

这是配置问题吗?我希望我能清楚地表达出来,并为我糟糕的英语表达歉意。谢谢。

4

1 回答 1

0

你可以看看静态构造函数的属性。我认为与您的问题相关的内容如下所示

  • 在创建第一个实例或引用任何静态成员之前,会自动调用静态构造函数来初始化类。
  • 不能直接调用静态构造函数。
  • 用户无法控制何时在程序中执行静态构造函数。

这可能就是您必须在构造函数中手动设置断点的原因。

于 2013-04-26T08:40:54.930 回答