你可以在静态方法中有一个静态变量吗?该变量的值是否会在对该方法的所有调用中保留?
例如。
public static void MyMethod()
{
    static int x = 0;
    x++;
}
你可以在静态方法中有一个静态变量吗?该变量的值是否会在对该方法的所有调用中保留?
例如。
public static void MyMethod()
{
    static int x = 0;
    x++;
}
不,但您可以:
private static int x = 0;
public static void MyMethod()
{
     x++;
} 
这是一种完成你想要做的事情的黑客方式。变成MyMethod在Action上创建闭包的x。该变量x仅对最里面的委托可见,并且表现得像一个静态变量。如果有人对改进此模式有任何建议,请告诉我。
public static readonly Action MyMethod = new Func<Action>(delegate ()
{
    var x = 0;
    return delegate () { x++; };
}).Invoke();
//example usage:
public void Init() {
    MyMethod();
}