该Main
方法在没有Program
类实例的情况下执行,这是可能的,因为它是一个静态方法。静态方法是无需从类中构造/实例化对象即可调用的方法。可以像这样直接在类本身上调用它们:
Program.Main(new string[0]);
// executes the Main static method on Program class
// with empty string array as argument
构造函数不是静态方法,要达到断点需要实例化Program
类,如下所示:
static void Main(string[] arguments)
{
var breakpoint2 = 0;
new Program(); // breakpoint1 will be hit
}
或者,您可以将构造函数设为 static,尽管从可测试性的角度来看,它确实不是很有用,并且还意味着您将拥有静态变量(全局可用):
static Program() {
var breakpoint1 = 0;
// breakpoint will be hit without an instance of the Program class
}
您可以在此处阅读有关静态方法的更多信息。