静态方法中的变量是否会自动变为静态,因为它们位于c#中的静态范围内?

Cem*_*mez 9 c# variables methods static

public static void DoSomething()
{
int a;
string b;

//..do something
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我声明了两个变量.它们是静态的,因为包含它们的方法是静态的吗?

Joh*_*Woo 7

不.只有方法是静态的而不是变量.

来自MSDN:

C#不支持静态局部变量(在方法范围内声明的变量).

如果你想在静态成员中有静态变量,请在静态方法之外进行声明,

private static int _var = 0;
public static void SampleMethod()
{
     _var++;
} 
Run Code Online (Sandbox Code Playgroud)


mat*_*mmo 5

尽管在C中可用,但C#不支持静态局部变量。

如果要使用等效的局部静态变量,则可以在类上创建实例变量或静态变量。否则,请考虑该方法本身是否属于静态类,以及是否应属于其他类型。