Tôi muốn có một bản ghi (cấu trúc) với một 'đa hình' comportment. Nó sẽ có một số trường được sử dụng trong tất cả các trường hợp và tôi chỉ muốn sử dụng các trường khác khi tôi cần chúng. Tôi biết rằng tôi có thể thực hiện điều này bằng các phần khác nhau được khai báo trong hồ sơ. Tôi không biết nếu có thể vào thời điểm thiết kế, tôi chỉ có thể truy cập vào các yếu tố tôi cần. Để cụ thể hơn, hãy xem ví dụ dưới đâyDelphi - hồ sơ với các bộ phận khác nhau
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.
Điều này có thể không?
+1. Tôi đã chắc chắn 80% đây là câu trả lời ... – RBA
Điều này là hoàn toàn chính xác, nhưng trong trường hợp này, tôi muốn sử dụng một lớp thay vì một bản ghi. Nó sẽ cho phép thêm tính năng thừa kế, có ý nghĩa ở đây (ví dụ: thuộc tính IsEnable thường được xử lý ở cấp độ gốc và được chia sẻ giữa các trẻ em). –