我有两个课程如下 -
public class dayInOutLog
{
public string status{ get; set;}
public int inTime{ get; set;}
public int outTime{ get; set;}
}
public class Emp_dayInOutLog
{
public string id{ get; set;}
public List<dayInOutLog> listOf_inOut { get; set;}
}
现在我需要为Emp_dayInOutLog类的对象设置值,我正在尝试如下,但我无法访问listOf_inOut的状态,inTime,outTime。
Emp_dayInOutLog obj = new Emp_dayInOutLog ();
obj.Add (new Emp_dayInOutLog {id = "1",listOf_inOut = new List<dayInOutLog> { status = "Absent",inTime = 585, outTime = 690} });
我哪里错了?
答案 0 :(得分:2)
更正:您必须在列表中添加类型dayInOutLog
的实例,例如:
Emp_dayInOutLog obj = new Emp_dayInOutLog {
id = "1",
listOf_inOut = new List<dayInOutLog> {
new dayInOutLog() <-----------------
{
status = "Absent",
inTime = 585,
outTime = 690
}
}
});
答案 1 :(得分:2)
您不仅需要创建新列表,还需要创建新的dayInOutLog
对象
obj = new Emp_dayInOutLog() {
id = "1",
listOf_inOut = new List<dayInOutLog> {
new dayInOutLog(){
status = "Absent",
inTime = 585,
outTime = 690
}
}
});
如果您要逐步创建它,您的代码将变得更具可读性 你会更容易找到这样的错误 此外,如果您为类提供构造函数,则只需在创建时传递值:
class dayInOutLog
{
public string status { get; set; }
public int inTime { get; set; }
public int outTime { get; set; }
public dayInOutLog(string st, int t_1, int t_2)
{
this.status = st;
this.inTime = t_1;
this.outTime = t_2;
}
}
public class Emp_dayInOutLog
{
public string id{ get; set;}
public List<dayInOutLog> listOf_inOut { get; set;}
public Emp_dayInOutLog(string _id)
{
this.id = _id;
this.listOf_inOut = new List<dayInOutLog>();
}
}
您对这些对象的创建可能如下所示:
Emp_dayInOutLog obj = new Emp_dayInOutLog("1");
obj.listOf_inOut.Add(new dayInOutLog("Absent", 585, 690));
答案 2 :(得分:1)
listOf_inOut没有直接的status,inTime和outTime属性。它是dayInOutLog记录的列表,那些具有这些属性。
添加新日志条目的代码应为:
var log = new Emp_dayInOutLog {
id = "1",
listOf_inOut = new List<dayInOutLog>
{
new dayInOutLog
{
status = "Absent",
inTime = 585,
outTime = 690
}
}
});
然后您可以使用任何列表控制循环或索引来访问它。
答案 3 :(得分:1)
您必须创建dayInOutLog,然后将其添加到列表中:
var obj = new Emp_dayInOutLog() {
id = "1",
listOf_inOut = new List<dayInOutLog> {
new dayInOutLog(){
status = "Absent",
inTime = 585,
outTime = 690
}
}
};
答案 4 :(得分:1)
您只需要这样做:
Emp_dayInOutLog obj = new Emp_dayInOutLog()
{
id = "1",
listOf_inOut = new List<dayInOutLog> {
new dayInOutLog(){
status = "Absent",
inTime = 585,
outTime = 690
}
}
};
您可以访问您的状态,例如:
obj.listOf_inOut.ElementAt(0).status
Emp_dayInOutLog
的上下文中不存在Add()方法,obj
上的无法使用。
但您可以通过以下方式在其列表中使用:
obj.listOf_InOut.Add(New dayInOutLog () {...})