在MSDN上,我发现:
在C#中,每个执行的指令都是在方法的上下文中完成的。
但我也读到int A=5;
语句可以在类体中。它似乎不在方法体中,为什么这可能呢?这可能只是术语混乱,但我想知道。
答案 0 :(得分:8)
阿德里安是对的。进一步澄清:“int A = 5;”它只是在方法体内时的声明。当它在方法体外部时,它是一个带有初始化器的字段声明,它在逻辑上被移动到构造函数体中。
初始化程序如何工作的确切语义有点棘手。有关这方面的一些想法,请参阅:
答案 1 :(得分:6)
class Example
{
int A = 5;
}
等于
class Example
{
int A;
public Example()
{
A = 5;
}
}
所以赋值仍然是方法(构造函数)的一部分。
答案 2 :(得分:1)
您可能是指字段初始化:
class Foo
{
private static int i = 5;
}
即使这条指令也在方法的上下文中运行。在这种特殊情况下,它是静态构造函数。如果该字段不是静态的,那么它将是正常的构造函数。