整个系统模块很多,我想在系统中定义全局变量,就随便在一个命名空中申明了一个静态类,里面定义两个静态成员就是全局变量,但是用的时候发现不对,我琢磨着是不是在定义静态类的时候位置放错了,是不是应该放在主程序中呢,还是有其他什么问题?

解决方案 »

  1.   

    不一定用静态类啊,直接申明静态变量就可以使用了,在类MyClass中定义静态变量如:static int myNum=0;在其他地方使用是就直接写:
      MyClass::myNum就是静态变量了
      

  2.   

    虽然做法不太规范,但是声明一个公共静态类存放公共变量是一个不错的办法,一般来讲只要整个解决方案在一个名称空间下就可以共享,LZ看看是不是把那个成员声明成私有了,还是调用点在其他名称空间里。namespace overAll
    {
       public static class Share
       {
          public static int a;
          public static int b;
          ...
       }   private class myClass
       {
          ...
          public void someFun()
          {
             int i = Share.a;//这里可以引用的。
              ...
          }
       }
       ...
    }
      

  3.   


    public class test{
        public static int num;
    }
      

  4.   

    全局变量的替代方式是单键模式。public class GlobalData
    {
        private GlobalData() { }    private static m_instance GlobalData = new GlobalData();
        
        public static GlobalData GetInstance()
        {
            return m_instance;
        }
        
        //这里放你的全局变量。
        public int SomeValue { get; set; }
    }使用:
    int n = GlobalData.GetInstance().SomeValue;