我正在研究一些代码。我将简要介绍细节,但这是我的经历:
这是班级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
。
我尝试调试并标记赋值行,调试器显示变量avcde
为0
,但book.starttime.Hour
显示一些整数值。从book.starttime.Hour
到变量avcde
的分配不成功。
我可以知道这有什么问题吗?
感谢您的帮助: - )
答案 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属性吗?