我有以下代碼操作與記錄在Delphi
type
TEnumTest = (
Hello1 = 0,
Hello2 = 1,
Hello3 = 2,
Hello4 = 3,
Hello5 = 4
);
type
TRecordTest1 = record
testa : Integer;
testb : AnsiString;
testc : Boolean;
testd : LongWord;
end;
type
TRecordTest2 = record
testa : Integer;
testb : AnsiString;
testc : Boolean;
testd : TEnumTest;
end;
type
TRecordTest3 = record
testa : Integer;
testb : AnsiString;
testc : Boolean;
testd : TEnumTest;
end;
type
TRecordTest4 = record
testa : Integer;
testb : AnsiString;
testc : Boolean;
testd : TEnumTest;
end;
type
TtestRecord = record
test1 : TRecordTest1;
test2 : TRecordTest2;
test3 : TRecordTest3;
test4 : TRecordTest4;
end;
有沒有辦法通過使用反射或其他機制,所以我可以做這樣的操作:
var
a : TtestRecord;
b : TtestRecord;
if a = b then
begin
..............
..............
end;
clearAllValues(a);
我剛剛添加的邏輯表達式
這是不必要的複雜。直接調用'Default'即可。你的通用方法很麻煩。我懷疑你相信'Default'是一個通用函數。事實並非如此。 –
@DavidHeffernan:我只是想''Default()'不能用於泛型之外,而不是泛型。就像你說的那樣,它並沒有被Embarcadero記錄下來,每一篇我可以發現提到'Default()'的博客文章總是與泛型相關,從不獨立。我從來沒有使用過它。 –
它是那些內部函數之一,有點像新的'GetTypeKind',它傳遞了一個類型引用。這可以是泛型類型或方法內的通用參數,也可以是具體類型。如果他們記錄它真的會很好。這是一個血腥的有用功能。 –