我想創建一個具有'多態'配置的記錄(結構)。它會在所有情況下使用幾個字段,並且我只在需要時才使用其他字段。我知道我可以通過在記錄中聲明的變體部分來完成此操作。我不知道在設計時是否有可能只能訪問我需要的元素。更具體的看下面的例子:德爾福 - 不同部分的記錄
program consapp;
{$APPTYPE CONSOLE}
uses
ExceptionLog,
SysUtils;
type
a = record
b : integer;
case isEnabled : boolean of
true : (c:Integer);
false : (d:String[50]);
end;
var test:a;
begin
test.b:=1;
test.isEnabled := False;
test.c := 3; //because isenabled is false, I want that the c element to be unavailable to the coder, and to access only the d element.
Writeln(test.c);
readln;
end.
這可能嗎?
+1。我80%確定這是答案... – RBA
這是完全正確的,但在這種情況下,我寧願使用類而不是記錄。它將允許添加繼承功能,這在此處是有意義的(例如,IsEnable屬性通常在父級別處理,並在兒童之間共享)。 –