随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万

type
  TRec1 = record
    name: string[12];
    age: Word;
  end;

  TRec2 = record
    name: string[12];
    age: Word;
  end;

var
  RecA,RecB: TRec1;
  RecX,RecY: TRec2;

procedure TForm1.Button1Click(Sender: TObject);
begin
  {给 RecA 赋值}
  RecA.name := '张三';
  RecA.age := 18;

  {复制 RecA 给 RecB}
  RecB := RecA;

  {现在 RecB 的值和 RecA 一样}
  ShowMessage(RecB.name); {张三}

  {修改 RecB 的值}
  RecB.name := '李四';

  {RecA 的值不变, 因为现在 RecA、RecB 是两个不同的数据}
  ShowMessage(RecA.name); {张三}


  //RecX := RecA; {这样会出错!}
  {尽管 RecX 与 RecA 的内部结构完全一样, 但 Delphi 认为它们是不同的数据类型}

  RecX := TRec2(RecA);    {但可以强制转换}
  ShowMessage(RecX.name); {张三}


  RecY.name := RecB.name; {交换内部值是可以的}
  RecY.age := RecA.age;
  ShowMessage(RecY.name); {李四}
end;

posted on   万一  阅读(4054)  评论(5编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?


点击右上角即可分享
微信分享提示