unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} type TStr12 = string[12]; {属性不接受 string[12], 只好定义成一个类型或使用 ShortString} TRec = record {定义结构 TRec} strict private {如果不使用 strict 修饰符, 在同一单元内的私有变量也是可以访问的} Fname: TStr12; Fage: Word; procedure Setage(const Value: Word); procedure Setname(const Value: TStr12); public property name: TStr12 read Fname write Setname; property age: Word read Fage write Setage; end; { TRec 属性要调用的方法实现} procedure TRec.Setname(const Value: TStr12); begin if Value='' then {这时可以提出一些条件, 譬如譬如姓名不能为空} Fname := '无名氏' else Fname := Value; end; procedure TRec.Setage(const Value: Word); begin if (Value<150) and (Value>=0) then {这时可以提出一些条件, 譬如年龄一般不会超过 150} Fage := Value else Fage := 0; end; //使用结构 procedure TForm1.Button1Click(Sender: TObject); var rec: TRec; begin rec.name := '张三'; {现在的 name 和 age 已经是属性了} rec.age := 800; ShowMessage(rec.name); {张三} ShowMessage(IntToStr(rec.age)); {0} rec.name := ''; rec.age := 18; ShowMessage(rec.name); {无名氏} ShowMessage(IntToStr(rec.age)); {18} end; end.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?