程序想法是这样的:
首先在一个类中读取parameter.txt文件的内容,然后再在另外一个类中使用此值,即返回到主类,主类中把此值赋予一个数组,但是返回值总是为0,请帮我看看是怎么回事,谢谢
读取TXT的类:
using System;
using System.IO;
using System.Text;
using System.Collections;namespace ReadAndWrite
{
    class Readparametes
{
        public const string STE_FILE = "parameter.txt";
        public static string Curr_path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
        public static String para_file = Path.Combine(Curr_path, STE_FILE);
        
        //public static void  Reader(string[] paras)
        public string Reader(string[] paras)
        {
            StreamReader reads = new StreamReader("parameter.txt");
            String para = "";
            paras = para.Split(',');
           // Console.WriteLine(para);             
           while (para != null)
            {
                para = reads.ReadLine();
            }
            reads.Close();
            Console.WriteLine(para);
            return para;
            
            
         /*  FileInfo file = new FileInfo(para_file);//删除用过的parametes.txt
            if (file.Exists)
                file.Delete();*/        }
        
}
}
主类,使用读到的txt文本信息:
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
namespace ReadAndWrite
{
        
    class Program
    {
        static FileSystemWatcher watcher = new FileSystemWatcher();
              static void Main(string[] args)
        {
           
            string Slot;
            string Model;
            string Function;
            string Range;
            string Resolution;
            string Nullval;
            string Close;
            string[]  paras = { "0", "0", "0", "0", "0", "0", "0" };
            Readparametes reading = new Readparametes();
            reading.Reader(paras);
            Console.WriteLine(paras);
            System.Threading.Thread.Sleep(1000);
            Slot = paras[0];
            Model = paras[1];
            Function = paras[2];
            Range = paras[3];
            Resolution = paras[4];
            Nullval = paras[5];
            Close = paras[6];
              // 监听parametes.txt
            watcher.Path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            watcher.Filter = "parameter.txt";
            watcher.EnableRaisingEvents = false;
            watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite;
            int i = 0;
              FilesUtil.DeleteExistingOutFiles();
              do
             {
                 watcher.EnableRaisingEvents = false;
                 watcher.WaitForChanged(WatcherChangeTypes.All);
                 watcher.EnableRaisingEvents = true;
                 i++;
                 File.WriteAllText("test.txt", i.ToString());
                 reading.Reader(paras);
                  Console.WriteLine(paras [0]+paras [1]);
                } while (i > 0);
               
          }         
     
  }
}

解决方案 »

  1.   


    public string Reader(string[] paras)
            {
                StreamReader reads = new StreamReader("parameter.txt");
                String para = "";
                paras = para.Split(',');
               // Console.WriteLine(para);             
               while (para != null) //这里一直循环到para为null才会结束循环
                {
                    para = reads.ReadLine();
                }
                reads.Close();
                Console.WriteLine(para);
                return para; //然后返回para,也就是说,这个函数永远返回null,有什么作用?
                
            }
      

  2.   

               while (para != null)
                {
                    para = reads.ReadLine();
                }
                reads.Close();
                Console.WriteLine(para);
                return para;
    这个while跳出的判断条件,仔细看一下!
    是null的时候才跳出,之后你返回的就是一个null吧!
      

  3.   

     public string Reader(string[] paras)
            {
                StreamReader reads = new StreamReader("parameter.txt");
                String para = "";
                paras = para.Split(',');    //这里有意义吗?
               // Console.WriteLine(para);             
               while (para != null)
                {
                    para = reads.ReadLine();  //始终只是一行的值
                }
                reads.Close();
                Console.WriteLine(para);
                return para;
    }
      

  4.   

    楼上GOOD,条件有问题。楼主可以自己跟踪下看
      

  5.   

    和申明也有关系
    问题解决,去掉while循环
     public static void  Reader(out string[] paras)
            //public string Reader(string[] paras)
            {
                StreamReader reads = new StreamReader("parameter.txt");
                String para = "";
                para = reads.ReadLine();
                paras = para.Split(',');           
                reads.Close();
                return ;
                      
            }
      

  6.   

    有必要搞到怎么复杂。
    直接return ReadToEnd()->主类->再分割字符串。
    或者函数分割好函数->赋值数组->返回数组