C#中的静态变量和static关键字

在C++编程时,我在某一个函数中使用static关键字来记录函数被调用的次数
如static int count=0 ; ++count;
但是在C#中不允许这样使用static关键字,那么C#如何才能达到这种效果呢?

C#中的static变量是属于类的,所以不能在方法中定义
public class Test 

    public static int count = 0;//正确,如果不需要在外面访问也可不加public
    public void 自定义方法()
    {
    static int count2 = 0;//错误
    }
}
//如果有加public,那外面就可以用Test.count来访问这个变量

追问

那如果我要在一个for循环里面加一个静态的变量,用来计算次数,如何做呢? 在C#中

追答

我不太清楚你的具体用途,因为c#中的static与c++中差别很大,如果你是想每次进入这个方法的时候,都还能保持上次的值,那就跟上面一样就行了,即

public class Test 

    public static int count = 0;
    public void run()
    {
      for(int i=0;i<5;i++)
         {
           count+=i;
        }
    }
}
static void Main()
{
   Test t = new Test();
   t.run();
   t.run();
   int i = Test.count; //此时的Test.count即为20
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-11
可以吧,但是静态变量只能在静态方法中被修改。你修改该值的代码很有可能是实例方法,所以不行
第2个回答  2013-12-11
静态遍历只能使用在静态方法中使用 ok
相似回答