0

我正在学习 Delphi Prism,但我不知道如何用它编写以下代码:

type
  TRapportItem = record
   Label : String;
   Value : Int16;
   AnomalieComment : String;
  end;

type 
  TRapportCategorie = record
    Label : String;
    CategoriesItems : Array of TRapportItem;
  end;

type 
  TRapportContent = record
    Categories : array of TRapportCategorie;
  end;

然后,在某个地方,我尝试将项目放入数组中:

rapport.Categories[i].Label:=l.Item(i).InnerText;

但这不起作用..有人可以启发我吗?

谢谢!

4

1 回答 1

5
  • 您没有具体说明什么“不起作用”。您应该在这样的问题中包含错误。
  • 数组是引用类型,它们以 value 开头nil。它们需要在元素可以被访问之前被初始化。

您可以使用操作员执行此new操作:

rapport.Categories = new TRapportCategorie[10]; // 0..9
  • 数组是相当低级的类型。通常最好改为使用List<T>

所以你会声明:

Categories: List<TRapportCategorie>;
  • 但是列表也需要使用new操作符进行初始化。此外,在包含值类型的列表上修改索引器的返回值将修改副本,而不是原始值,这会导致下一个点。
  • 记录通常不是表示数据的最佳数据类型,因为它们不是引用类型;很容易最终修改数据的副本,而不是原始数据。通常最好使用类来代替,您可以将所有初始化代码(例如分配数组或列表)放在构造函数中。
于 2009-10-04T08:38:15.380 回答