0

我目前正在处理一些代码。我将缩短细节,但这就是我的经验:

这是课程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不成功。

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

谢谢你的帮助 :-)

4

2 回答 2

2

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

于 2012-05-14T18:21:33.377 回答
1

一个不可为空的int可以返回null似乎很奇怪,我认为这是不可能的,因为默认值为零......

但是,您是否尝试在 for each 循环之后直接在 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 属性吗?

于 2012-05-14T18:51:02.823 回答