如何制作一个物体场

时间:2014-10-27 22:34:04

标签: c# objective-c list object field

字段Day[] calendar = new Day[365];包含类。正如老师想要的那样。

但我不知道如何让我的方法 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;
    }       
}

1 个答案:

答案 0 :(得分:0)

如果我理解你想要完成的事情;您希望将Homework记录添加到Day对象所持有的Calendar

首先,我们需要得到这一天:

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);
}

多数民众赞成!在查看代码时我注意到的一些事情:

  1. 您的Day课程中有List<Homework>Calendar。你不应该需要其中任何一个。 {I} Day[]就足够了。
  2. 看起来您在添加功能中重用了parts[1]。我怀疑你希望日期成为subect的一部分!我在我的代码中修复了它。
  3. 您的Day课程会使用无意义的项目预先填充其Homework列表。你可能需要删除它。