0

テキスト ボックスから顧客データを取得し、ドライブ C のテキスト ファイルに保存する単純なアプリケーションを作成しています。文字列はコンマで区切られています。そして、ボタンによって最初のフォームからアクティブ化される2番目のフォームに保存されたデータを表示します。これまでに書いたコードは次のとおりです。

コードはエラーなしでコンパイルされますが、警告が表示されます: variable FILE in form2 is declared but not used... デバッグせずに開始すると、エラー レポートでクラッシュします。

「InvoiceDataAppGaoria.Form2」の型初期化子が例外をスローしました (Form2 F2=new Form2())

配列要素をテキスト ボックスに割り当てると、IDE (visual studio 2008) でエラーが報告されます。

フォーム2

namespace InvoiceDataAppGaoria
{
    public partial class Form2 : Form
    {
        static string FILE = @"C:\Csharp\coursework1\maucha.txt";
        static FileStream outFile = new FileStream("FILE", FileMode.Open, FileAccess.Read);
        static StreamReader read = new StreamReader("FILE");
        static string line = read.ReadLine();
        static string[] values = line.Split(',');
        string invoicetxt = values[0];
        string lname = values[1];
        string fname = values[2];
        string AMT = values[3];

        public Form2()
        {
            InitializeComponent();
        }

    }
}

フォーム1

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.IO;

namespace InvoiceDataAppGaoria
{
   public partial class Form1 : Form
    {
      const string DELIM = ",";
      const string FILENAME = @"C:\Csharp\coursework1\maucha.txt";
      int invoNum;
      string lname,fname;
      double AMT;
      static FileStream outFile = new    FileStream("FILENAME",FileMode.Create,FileAccess.Write);
      StreamWriter writer = new StreamWriter(outFile);
      public Form1()
      {
        InitializeComponent();
      }

      private void button1_Click(object sender, EventArgs e)
      {
        invoNum = Convert.ToInt32(invoicetxt.Text);
        lname = lnameBox.Text;
        fname = fnameBox.Text;
        AMT = Convert.ToDouble(amtBox.Text);
        writer.WriteLine(invoNum+DELIM+lname+DELIM+fname+DELIM+AMT);
      }
      private void button2_Click(object sender, EventArgs e)
      {
        Form2 F2 = new Form2();
        F2.Show();
      }

   }

}
4

1 に答える 1

2

ファイル ストリームを作成するときは、変数の代わりに文字列 を使用します。代わりに、おそらく次のようになります。"FILE" FILE

static string FILE = @"C:\Csharp\coursework1\maucha.txt";
static FileStream outFile = new FileStream(FILE, FileMode.Open, FileAccess.Read);
static StreamReader read = new StreamReader(FILE);

そして、言及しただけです:実際には変数に名前を付けるべきでfileあり、 ではありませんFILE。一般的な命名規則に固執することで、他のコードをより快適に読むことができます。

于 2012-04-21T15:04:36.030 に答える