0

我创建了一个请求用户输入的类(7 个单个数据的文本框)

我需要使用 StreamWriter 类保存该数据以供以后在平面文件中使用。

我是否必须为每个字段创建单独的实例?

private void btnSaveFile_Click(object sender, EventArgs e) { StreamWriter studentInfo = new StreamWriter(txtFirstName.Text); }

或者有没有办法让 StreamWriter 打印该类中的所有字段?我尝试重载该方法,但显然无法做到。

4

2 回答 2

1

是的,如果您首先将其序列化为 JSON 或 XML,则将其作为字符串...或者最简单的方法...ToString()在您的类中添加一个方法:

    class Person
    {
            public string Name { get; set; }
            public int Age { get; set; }
            public Person (string name, int age) {
              this.Name = name;
              this.Age = age;
            }
            public override string ToString()
            {
                return "Person: " + Name + " " + Age;

            }

     }

然后编写您的 Class 实例以将其写入文件:

private void btnSaveFile_Click(object sender, EventArgs e)
{
   string mydocpath = ""; // add your path here
   Person newPerson =  new Person ("David", 32);
   using (StreamWriter studentInfo = new StreamWriter(mydocpath + @"\Student.txt")) {
      studentInfo.WriteLine(newPerson.ToString());
   }
}

希望这可以帮助

于 2016-11-16T17:56:57.427 回答
0

您可以使用该[Serializable]属性标记您的班级。然后,您可以使用 aBinaryFormatter将类写入流。也就是说,如果数据是人类可读的,对你来说并不重要。

于 2016-11-16T19:42:55.393 回答