为什么说我的程序有错呢 是不是全局变量用错了?
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            test a = new test();
            string newdate = "20100217", olddate = "20110122";
            public static string[] newDateList = new string[5]; 
            newDateList = DateList(newdate);
            public static string[] oldDateList = new string[5]; 
            oldDateList = DateList(olddate); //我想把newDateList、oldDateList设为全局变量,它调用test类里面的DateList函数得到日期的数组。数组值在其他函数中不变。
            a.CopyDirectory("D:\\1", "E:", oldDateList, newDateList);  //CopyDirectory就调用newDateList、oldDateList的值
            public class test
        {
            public test()
            {
            }
       public string [] DateList(string sDateTime)  {}
       public void readwriterFile(string FileAddress,string oldDateList,string newDateList){}
       public void CopyDirectory(string DirectoryPath, string DirAddress, string []oldDateList,string []newDateList){            for (int i = 0; i < 5; i++) 
                    {if (inf.Name == oldDateList[i])                           还要调用  readwriterFile(FileAddress,oldDateList[i],newDateList[i]     }

解决方案 »

  1.   

    全局变量你放在那儿,
    string newdate = "20100217", olddate = "20110122";
    上面的代码应该放在方法外部
    类的全局变量应该放在类内,用作成员变量。放在方法内部,只是方法内部的变量
      

  2.   

    楼上 正解。你设置的newDateList、oldDateList没有写明可访问性,那么系统默认是private。其次全局变量不会放在方法内部的,在你这里就已经放在Main方法里面了。这首先就是逻辑上的混乱。像你现在这样写,newDateList、oldDateList只是Program类里面的Main方法里面的局部变量。
      

  3.   

    class Program
      {  public static string[] newDateList = DateList(newdate);  static void Main(string[] args)
      {
          //public static string[] newDateList = new string[5];  
          //newDateList = DateList(newdate);
          //public static string[] oldDateList = new string[5];  
          //oldDateList = DateList(olddate); //我想把newDateList、oldDateList设为全局变量,它调用test类里面的DateList函数得到日期的数组。数组值在其他函数中不变。   ...  }