如果你写一个课程并且你使用这样的东西
...
int x;
{ x = 2; }
...
这将是一个初始化块吗?
那么你如何使用花括号来指定范围,以便它们像任何其他代码一样执行?基本上它们不是构造函数的一部分。
实施例
如果你在switch语句中使用一个块,它会像初始化块一样执行吗?
switch(...)
{
case :
{ // this right here how does the compiler know the difference?
...
break;
}
}
答案 0 :(得分:2)
初始化块仅适用于类范围内的块,并且不在函数原型之前(即不是函数体的块)。
在函数体内,您创建的任何块都将引入范围,但不会被解释为初始化。
示例:
public class NameOfClass {
{
// This is an initalization block
}
AccessModifier ReturnType nameOfFunction(ParamType nameOfParam) {
// This is a function body and is not an initialization
{
// This introduces scope, is not an initialization
}
}
}