主要方法中的变量是否为静态

Vai*_*ain 14 .net c# static

众所周知,静态方法只能对静态成员起作用.

public static void Main()
{
    Test t1 = new Test();
}
Run Code Online (Sandbox Code Playgroud)

这里的Main方法是静态的,但我没有声明t1为静态.它隐含着静态吗?

Jon*_*eet 23

不,这是一个局部变量.无论是在静态方法还是实例方法中声明,局部变量的行为都是相同的.

作为一个非常粗略的指南(捕获变量等引入并发症):

  • 实例变量:每个实例一个变量
  • 静态变量:类型本身的一个变量
  • 局部变量(包括参数):每个方法调用一个单独的变量

  • 这个答案已被接受.你还没有点击它:-D (4认同)

Eri*_*ert 10

众所周知,静态方法只能对静态成员起作用

这不是事实; 这是虚假的.没有任何限制; 静态方法可以完全访问其类型的所有成员:

class C 
{
    private int x;
    static C Factory()
    {
        C c = new C();
        c.x = 123;
    }
}
Run Code Online (Sandbox Code Playgroud)

工厂是一种静态方法; 它可以访问任何C实例的私有实例成员.