在C++中,函数里面是可以这样定义的
static int i = 0;
i++;
但是在C#里面不行,那用什么能实现同样的功能呢,也就是作用域只在该函数内,第一次的时候初始化。谢谢

解决方案 »

  1.   

    readonly int  i = 0;
      

  2.   

    int i 上移到类里
    --------
    但是这样的话,i的作用域为类级别的,类里面的其余函数也是可以修改i的。
    我说的在C++里面的static情况,i的作用域是函数级的,别的函数不能修改i。
      

  3.   

    只能赋值一次的要用final 或者什么的,记不清了,不过函数里边没听说过有static
      

  4.   

    写在类里面用static不就行了么
      

  5.   

    static int i; 其实是c遗留下来的
    从面向对象的观点,c++ 也不太支持这种写法,他造成太多的耦合,且c++为了保持与c的兼容,才保留了他
    c# 是完全面向对象的新语言,不支持这种写法c# static 只能修饰 类成员 而不能修饰 函数的局部变量
      

  6.   

    static int i; 其实是c遗留下来的
    从面向对象的观点,c++ 也不太支持这种写法,他造成太多的耦合,且c++为了保持与c的兼容,才保留了他
    c# 是完全面向对象的新语言,不支持这种写法
    -------------------
    从函数里面定义static,造成太多的耦合?举个例子吧,为什么还有从我要实现的功能来看,C++里面的在函数内部定义static的方法是个好方法,因为他把i的变量的作用域限制到了最小,防止别的地方误操作。
      

  7.   

    从函数里面定义static,造成太多的耦合?举个例子吧,为什么还有从我要实现的功能来看,C++里面的在函数内部定义static的方法是个好方法,因为他把i的变量的作用域限制到了最小,防止别的地方误操作。
    ==============
    建议楼主看看面向对象的基础书
      

  8.   

    public static int i = 0;放在类里面 函数外面