我正在编写一个程序,我希望能够添加Surfer
(需要四个字符串FirstName
,LastName
,Dob
,{{ 1}})。 (我没有使用Country
,因为它对于这个项目来说并不是必需的,尽管使用它可能是更好的做法。)然后我想把我刚刚创建的类写成文本文件,我有一个格式化的字符串。我有两个问题。
没有将DateTime
或Dob
写入文本文件。
我不确定如何将每个条目放在新行上。 (我试过了\ n
在我的FileFormat字符串的末尾,并单独在我的结尾
字符串Country
。
我尝试这样做的代码是
toFile
我的代码是WindowAdd.cs
public class Surfer
{
protected string SurferFirstName { get; set; }
protected string SurferLastName { get; set; }
protected string SurferDob { get; set; }
protected string SurferCountry { get; set; }
public Surfer() { }
public Surfer(string surferFirstName, string surferLastName, string surferDob, string surferCountry)
{
SurferFirstName = surferFirstName;
SurferLastName = surferLastName;
surferDob = SurferDob;
surferCountry = SurferCountry;
}
public override string ToString()
{
return string.Format("Surfer name: {0} {1} Surferdob: {2} \n Country: {3}", SurferFirstName, SurferLastName, SurferDob, SurferCountry);
}
//for display in the textblock, virtual for inheritance
/* public virtual string vehicleDetails()
{
return string.Format("Make:{0,40} \nModel:{1,40} \nPrice:{2,40} \nYear: {3,40} \nColour: {4,40}, \nMileage: {5,40} \nDescription: {6,40} \nEngine: {7,40}", Make, Model, Price, Year, Colour, Mileage, Description, Engine);
}*/
//for formatting to a text file
public string FileFormat()
{
return string.Format("{0},{1},{2},{3} \n", SurferFirstName, SurferLastName, SurferDob, SurferCountry);
}
}
我在文本文件中得到的结果是这样的
John,Barry,Happy,Gilmore ,,
这是两次尝试的条目
基本验证正在运行,因此它正在从xaml读入。我知道我可以使用private void btnSubmit_Click(object sender, RoutedEventArgs e)
{
//reading in from text boxes
string fName = txtbxFirstName.Text;
string lName = txtbxLastName.Text;
string dob = txtbxDob.Text;
string country = txtbxCountry.Text;
//basic validation
if (fName.Length <2 || lName.Length <2 )
{
MessageBox.Show("first and last name must be entered");
}
else if(dob.Length <10 || dob.Length>10)
MessageBox.Show("Enter dob in the correct format (dd/mm/yyyy)");
else if(country.Length <3)
MessageBox.Show("Enter a valid country");
else
{
try
{
//sets mainWindow
MainWindow mainWindow = new MainWindow();
//creates new surfer class
Surfer newSurfer = new Surfer(fName, lName, dob, country);
//adds to observable collection
mainWindow.surfers.Add(newSurfer);
//uses FileFormat from the Surfer Class to format in order to add to text file
string toFile = newSurfer.FileFormat();
//append to Surfers.Text
File.AppendAllText("Surfers.Text", toFile);
//closes window
this.Close();
}
并编写代码,通过保存按钮将我的可观察集合中的每个元素发送到文本文件,但如果可能的话,我宁愿以类似于我正在尝试的方法的方式进行,其中我一次在文本文件中保存一个条目而不删除现有元素。
答案 0 :(得分:1)
您的构造函数为Dob和Country指定了错误方向的变量。您将属性分配给参数,而不是将参数分配到属性中。
public Surfer(string surferFirstName, string surferLastName, string surferDob, string surferCountry)
{
SurferFirstName = surferFirstName;
SurferLastName = surferLastName;
surferDob = SurferDob;
surferCountry = SurferCountry;
}
对于新行,请按照Quantic上面的建议使用Environment.NewLine
。