众所周知,静态方法只能对静态成员起作用。
public static void Main()
{
Test t1 = new Test();
}
此处Main
方法是静态的,但我没有将t1
声明为静态。它隐含着静态吗?
答案 0 :(得分:23)
不,这是本地变量。无论它们是在静态方法还是实例方法中声明,局部变量的行为都是一样的。
作为非常粗略的指南(捕获变量等引入并发症):
答案 1 :(得分:10)
众所周知,静态方法只适用于静态成员
这不是事实;这是虚假的。没有任何限制;静态方法可以完全访问其类型的所有成员:
class C
{
private int x;
static C Factory()
{
C c = new C();
c.x = 123;
}
}
工厂是一种静态方法;它可以访问任何C实例的私有实例成员。