如何制作对象字段
本文关键字:字段 对象 何制作 | 更新日期: 2023-09-27 18:28:12
字段Day[] calendar = new Day[365];
包含类Day。正如老师所希望的那样。
但我不知道如何使我的方法AddRecord保存在该字段中。我使用
hw.Add(new Homework(Convert.ToDateTime(part), parts[1], parts[2]));
将其添加到列表。但我需要将数据保存到Day[] calendar = new Day[365];
,我只是不知道如何保存。
课程日历
class Calendar
{
Day d = new Day();
List<Homework> hw;
Day[] calendar = new Day[365];
//Day[0] = (Convert.ToDateTime("9.3.2008 16:05"), "M", "text"));
public Calendar()
{
hw = d.GetList();
}
public void AddRecord(string line)
{
string[] parts = line.Split(' ');
string part = parts[0] + " " + parts[1];
hw.Add(new Homework(Convert.ToDateTime(part), parts[1], parts[2]));
}
上课日
class Day
{
List<Homework> hw = new List<Homework>();
public List<Homework> GetList()
{
hw = new List<Homework>();
string datum = "29.5.2005 16:55"; //!
hw.Add(new Homework(Convert.ToDateTime(datum), "INF", "THREE"));// !
return hw;
}
}
课堂作业
class Homework
{
public DateTime dt; }
public string subject;
public string content;
public Homework(DateTime dt, string subject, string content)
{
String.Format("{0:d.m.yyyy HH:mm}", dt);
this.dt = dt;
this.subject = subject;
this.content = content;
}
}
如果我理解你想要实现的目标;您希望将Homework
记录添加到Calendar
对象所持有的相应Day
中。
因此,首先,我们需要有一天:
DateTime dataDate = Convert.ToDateTime(part); //Or something
Day dueDate = calendar.FirstOrDefault(d => d.Date = dataDate);
请注意,这可能第一次不起作用,因为您需要比较当天。如果创建的Day
对象的时间与Homework
项目的时间不同,则即将进行的null
检查将失败。我将把这个比较留给你练习,但如果你不明白,请随时留下评论。
然后我们需要给它一个家庭作业项目:
if (dueDate != null) //Check if we found the date!
dueDate.AddHomeworkItem(new Homework(dataDate, parts[2], parts[3]));
else
throw new Exception("Date not found; invalid data read"); //Or something
//Failing silently is usually bad
当然,这需要Day
类中的一个方法:
public void AddHomeworkItem(Homework item)
{
hw.Add(item);
}
就是这样!我在查看你的代码时注意到了几件事:
- 您的
Calendar
类中有一个Day
和List<Homework>
。你不应该需要它们中的任何一个。据我所见,Day[]
已经足够了 - 看起来您在添加函数中重用了
parts[1]
。我怀疑你是否想把日期作为子节的一部分!我在代码中修复了它 - 您的
Day
类使用一个无意义的项预先填充其Homework
列表。你可能需要删除它