我想定义一个动态全局数组的属性。
private
class var FArray;
public
class property myArray : array of byte read FArray write FArray;
我有全球价值单位。我的程序打开图像并获得缩放图层和分辨率。例如:如果我的图像有5个缩放图层,我的属性数组的长度将为5.我只声明此属性一次,直到关闭并更改图像。我想从每个单元访问此属性,因此它必须是全局和动态数组。也属性。我怎么能宣布这个?
答案 0 :(得分:2)
像这样:
type
TMyGlobalClass = class
private
class var FArray: TArray<Byte>;
public
class property myArray: TArray<Byte> read FArray write FArray;
end;
人们想知道是否值得将此作为财产。属性给出了封装的外观,但在这种情况下,您只能获得具有轻度混淆的全局变量。由于您可以完全访问读取和写入,因此您可能会像这样编写它:
type
TMyGlobalClass = class
public
class var myArray: TArray<Byte>;
end;
这只不过是TMyGlobalClass
范围内的全局数组。
只是为了试图涵盖所有基础,如果我不提及普遍持有的观点,即全球状态通常是设计不良的标志,那将是我的疏忽。当然你可以用某种方式封装。