有以下程序 “ public List<FaceLogManager.FaceLogInfo> templist = new List<FaceLogManager.FaceLogInfo>();
        ........
        ....Add...
        .....Add...
        .......
for(i=0;i<templist.Count;i++)
{
 if(......)
......
....
    templist[i].endTime = DateTime.Now;  //endTime 在FaceLogInfo已定义好位 DateTime 类型,但是这句话报错,貌还  是语法错误,说是 什么变量不能赋值什么的(日文系统,看不懂,求解决办法,如何给这个templist[i].endTime赋值)
}

解决方案 »

  1.   

    FaceLogManager.FaceLogInfo是值类型。所以不能对其属性赋值,需要拷贝出对象,然后修改,重新设置对象。如果你有兴趣,原理性的分析可以看我这个文章
    List中的值类型无法修改的原因详解
    这里除了介绍为什么List中的值类型对象无法修改属性,也介绍了如何反射的方式修改属性。当然,这么复杂的做法,你是不会愿意大量在项目中使用的,最好办法是少用struct.
      

  2.   

    看看你的endTime能不能setcheck,是不是public?
    如果是field, 会不会是readonly?
    如果是property,有没有set方法?
      

  3.   

    我觉得这个代码也看不出来,但是非常怀疑你的那些:
    ....Add...
      .....Add...
      .......
    先确认它们是new FaceLogManager.FaceLogInfo()
      

  4.   

    templist[i].endTime 这个貌似是变量的命名,而变量一般都是private的,所以你在外边是无法访问的
    那你看下,是不是有对应的属性templist[i].EndTime,如果有就对它进行赋值,如果它有public的set的话
    templist[i].EndTime = DateTime.Now;