none
C# 不懂錯在哪 RRS feed

  • 一般討論

  • FileInfo fin = new FileInfo("C:\\Documents and Settings\\user\\桌面\\input.txt");
                StreamReader sr = fin.OpenText();
                FileInfo fout = new FileInfo("C:\\Documents and Settings\\user\\桌面\\output.txt");
                StreamWriter sw = fout.CreateText();
                string[] num = new string[3];
                for (i = 0; i < n; i++)
                {
                    string str = sr.ReadLine();
                    num = str.Split(' ');                           ------------------------------->出現"並未將物件參考設定為物件的執行個體"
                    /*DLG[i].x = double.Parse(num[0]);
                    DLG[i].y = double.Parse(num[1]);
                    DLG[i].z = double.Parse(num[2]);*/
                }
    2011年8月11日 下午 12:22

所有回覆

  • 發生錯誤時,此行為黃色,滑鼠分別停在 i 上面、 str 上面,會出現此時變數值。

    對你的 input.txt 確認是否有錯,此時值為何?


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年8月11日 下午 01:04
  • 還有,FileInfo.CreateText 是建立新檔,你用 ReadLine 的話,應該是要用 FileInfo.OpenText


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年8月11日 下午 01:06
  • num = str.Split(' ');    在這行以前先判斷str 是不是Null or Empty

    參考MSDN文件庫

    [String.IsNullOrEmpty 方法]


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年8月11日 下午 01:07
    版主
  • FileInfo fin = new FileInfo("C:\\Documents and Settings\\user\\桌面\\input.txt");
                StreamReader sr = fin.OpenText();
                FileInfo fout = new FileInfo("C:\\Documents and Settings\\user\\桌面\\output.txt");
                StreamWriter sw = fout.CreateText();
                string[] num = new string[3];
                for (i = 0; i < n; i++)
                {
                    string str = sr.ReadLine();
                    num = str.Split(' ');                           ------------------------------->出現"並未將物件參考設定為物件的執行個體"
                    /*DLG[i].x = double.Parse(num[0]);
                    DLG[i].y = double.Parse(num[1]);
                    DLG[i].z = double.Parse(num[2]);*/
                }


    這看起來不像完整程式碼

    以下是重構後的樣子

    FileInfo fin = new FileInfo("C:\\Documents and Settings\\user\\桌面\\input.txt");
          StreamReader sr = fin.OpenText();
          FileInfo fout = new FileInfo("C:\\Documents and Settings\\user\\桌面\\output.txt");
          StreamWriter sw = fout.CreateText();
          string[] num = new string[3];
          for (int i = 0; i < num.Length; i++)/*主要改這邊*/
          {
            string str = sr.ReadLine();
            num = str.Split(' ');                    /*DLG[i].x = double.Parse(num[0]);
            DLG[i].y = double.Parse(num[1]);
            DLG[i].z = double.Parse(num[2]);*/
          }
    
    

     


    Shadowと愉快なコード達
    2011年8月11日 下午 02:32
  • FileInfo fin = new FileInfo("C:\\Documents and Settings\\user\\桌面\\input.txt");
                StreamReader sr = fin.OpenText();
                FileInfo fout = new FileInfo("C:\\Documents and Settings\\user\\桌面\\output.txt");
                StreamWriter sw = fout.CreateText();
                string[] num = new string[3];
                for (i = 0; i < n; i++)
                {
                    string str = sr.ReadLine();
                    num = str.Split(' ');                           ------------------------------->出現"並未將物件參考設定為物件的執行個體"
                    /*DLG[i].x = double.Parse(num[0]);
                    DLG[i].y = double.Parse(num[1]);
                    DLG[i].z = double.Parse(num[2]);*/
                }


    這看起來不像完整程式碼

    以下是重構後的樣子

    FileInfo fin = new FileInfo("C:\\Documents and Settings\\user\\桌面\\input.txt");
       StreamReader sr = fin.OpenText();
       FileInfo fout = new FileInfo("C:\\Documents and Settings\\user\\桌面\\output.txt");
       StreamWriter sw = fout.CreateText();
       string[] num = new string[3];
       for (int i = 0; i < num.Length; i++)/*主要改這邊*/
       {
        string str = sr.ReadLine();
        num = str.Split(' ');          /*DLG[i].x = double.Parse(num[0]);
        DLG[i].y = double.Parse(num[1]);
        DLG[i].z = double.Parse(num[2]);*/
       }
    
    

     


    Shadowと愉快なコード達

    試一下,加入判斷IsNullOrEmpty

    string str = sr.ReadLine();

    if(string.IsNullOrEmpty(str)==false){

    num = str.Split(' '); /*DLG[i].x = double.Parse(num[0]);

        DLG[i].y = double.Parse(num[1]);
        DLG[i].z = double.Parse(num[2]);*/

    }


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2011年8月14日 上午 05:19
  • Hi: 問題解決了嗎 ?
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年8月16日 上午 04:14
    版主