Delphi记录变体部分用法详解

记录的变体部分的用法,在 Delphi 里还是蛮有意思的。简单说,就是你可以在一个record里,内嵌一段根据条件变化的结构体——看起来有点像变形金刚的设定,嗯,挺灵活的。写法上有点类似case ... of,适合用在内存敏感、结构多变的场景,比如设备通讯、协议解析这类活儿。

变体部分其实不复杂,声明的时候直接在record结构中加个case语句,比如:

type
  TMyRecord = record
    ID: Integer;
    case Kind: Integer of
      0: (Age: Integer);
      1: (Name: string);
  end;

上面这段代码的意思是,根据Kind的值不同,TMyRecord要么存Age,要么存Name。适合那种“同一个结构里字段会切换”的情况。你要注意的是,它们共用一段内存,别想着两个都能同时用。

如果你对变体部分还不熟,可以看看这个 Delphi 教程,讲得比较细;想看更多实例化用法的话,也可以参考Delphi 里的 case 语句教程,挺实用。

另外,如果你正在写数据库类项目,TPDJDBSearch 组件还蛮适合配合这类结构做快速查找。

,如果你碰到那种结构内容变化频繁但空间又不能浪费的需求,可以试试这个写法,效率还不错。如果你是初学者,建议配合调试器多试试不同Kind值下的表现。

ppt 文件大小:1.36MB