无法使用属性对对象字段的值进行字符串处理

本文关键字:处理 字符串 字段 对象 属性 | 更新日期: 2023-09-27 18:34:04

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

这是类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的赋值不成功。

我可以知道这是怎么回事吗?

感谢您的帮助:-)

无法使用属性对对象字段的值进行字符串处理

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

一个

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

但是,您是否尝试过在每个循环之后直接分配文本框中的值? 尝试这样的事情:

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 属性?