无法使用属性对象字段的字符串值

时间:2012-05-14 18:17:46

标签: c# asp.net datetime foreach

我正在研究一些代码。我将简要介绍细节,但这是我的经历:

这是班级BookingObject

public class BookingObject
{
    public BookingObject(int id, DateTime starttime)
    {
        this.id = id;
        this.starttime = starttime;
    }
   public int id {get; set;}
   public datetime {get; set;}
}

这是webform.aspx

  List<BookingObject> bo = new List<BookingObject>();

  foreach (BookingObject book in bo)
  {
      int avcde = book.starttime.Hour;
      //starttime is DateTime
      TextBox1.Text = avcde.toString();
  }

当我在某个文本框中显示变量avcde时,会显示null。 我尝试调试并标记赋值行,调试器显示变量avcde0,但book.starttime.Hour显示一些整数值。从book.starttime.Hour到变量avcde的分配不成功。

我可以知道这有什么问题吗?

感谢您的帮助: - )

2 个答案:

答案 0 :(得分:2)

由于你的问题是基本的,我将给出一个基本答案......在foreach循环之后,在foreach循环中创建的变量将被销毁。如果没有剩下的代码,就很难诊断问题。

答案 1 :(得分:1)

非常奇怪的是,非可空int可以返回null,我认为是不可能的,因为默认值为零...

但是,您是否尝试在for循环之后直接分配textBox中的值?尝试这样的事情:

List<BookingObject> bo = new List<BookingObject>();
  DateTime dt;
  foreach (BookingObject book in bo)
  {
      dt = book.starttime;

  }
  //starttime is DateTime
  TextBox1.Text = Convert.ToString(dt.Hour);

尝试使用此代码并查看结果...

你确定在这段代码之后没有再分配TextBox.Text属性吗?