【发布时间】:2017-06-13 07:56:15
【问题描述】:
我开始使用 C# .NET 进行编程。我为工人制作了一个网络日历,他们可以在其中查看由于疾病、假期等原因没有上班的天数。 起初我是用 2 个数组来做的。一个用于具有这些尺寸的完整日历:
calendar[person_code][month][day][6 items] -> calendar[int][int][int][object (starting absence date, type of absence, etc)]
另一个是一个数组,有一个工人定义,如
person[person_code][13 items] -> person[int][13 string (name, surname, etc)]
我想通过类来改进我的代码。我正在考虑上面的课程:
public class absence
{
public int absenceCode { get; set; }
public int typeAbsence { get; set; }
public DateTime startingDate { get; set; }
public DateTime endingDate { get; set; }
public string description { get; set; }
public string state { get; set; }
public constructors...
}
public class calendar
{
public int day { get; set; }
public int month { get; set; }
public absence absen { get; set; }
public contructors....
}
public class person
{
public int personCode { get; set; }
public string surname { get; set; }
public string name { get; set; }
public string address { get; set; }
public int maxHolidayDays { get; set; }
public calendar calend { get; set; }
public constructors....
}
这是我的代码,但我不知道如何处理设置和检索信息,例如使用数组。 我可以为每个人创建一个新的实例,但我需要在一个独特的日子创建一些缺勤。 (一名工人一天可以缺勤几次) 我曾想过要使用类似的 List(T) 类
List<person> = new List<person>(), and List<absence> = new List<absence>()
但是我如何设置一个嵌套在一天的“日历”类中的List<absence>()?
我需要在一个日历日内设置该列表,该列表低于列表中的一个人:/
List<person> -> calendar -> List<absence>
我希望这对你来说已经足够清楚了。 问候。
【问题讨论】:
-
旁注:您需要开始遵循命名约定:docs.microsoft.com/en-us/dotnet/standard/design-guidelines/…
-
你能说清楚点吗?就像制作您想要制作的所需数据结构的层次结构?据我了解,您可以在
person中列出calendar,以保留您的员工的每一次缺勤。 -
对我来说,你不需要
calendar类就能得到所有缺勤的人。 -
正如我所说,我正在学习 C#,所以我使用了数组,因为对我来说最简单。层次结构应该是:一个人有一个相关的日历,每天有或没有一些缺勤。 P.ej。 John Doe 有一个日历,其中 3 日缺席。 1 月和 6 月 6 日两次缺席。我可以定义一个具有 List 缺席属性的 person 类,它会包含所有这些缺席,但我认为这根本不正确。我认为很清楚有一个人课,一个日历课和一个缺勤课。你怎么看?