(delphi11最新学习资料) Object Pascal 学习笔记---第12章第4节 ( 类型别名助手)

12.4.5 类型别名助手

​ 正如我们所见,不能为相同类型定义两个助手,更不用说原生数据类型了。那么如何向原生数据类型(例如 Integer)添加额外的直接操作呢?虽然没有明确的解决方案,但有一些可能的解决方法(除了复制内部类助手源代码并添加额外的方法)。 我喜欢的解决方案是定义一个类型别名。类型别名被编译器视为全新的类型,因此它可以有自己的助手而不替换原始类型的助手。现在,鉴于这两种类型是独立的,你仍然不能将两个类助手的方法应用于同一变量,但可以将其中一组进行类型转换。我将用代码来解释这一点。假设你创建了一个类型别名,如下所示:

type
  MyInt = type Integer;

现在,你可以为这种类型定义一个助手:

type
  TMyIntHelper = record helper for MyInt
    function AsString: string;
  end;
  
function TMyIntHelper.AsString: string;
begin
  Result := IntToStr(Self);
end;

​ 如果你声明这种新类型的变量,访问该变量将默认允许你调用新类型的助手,但你仍然可以通过转换访问 Integer 类型的助手—这段代码在 TypeAliasHelper 示例中,你可以进一步尝试改写为其他形式:

procedure TForm1.Button1Click(Sender: TObject);
var
  MI: MyInt;
begin
  MI := 10;
  Show(MI.AsString);
  // Show(MI.ToString); // 这不起作用
  Show(Integer(MI).ToString);
end;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Object Pascal是一种强类型语言,对数据类型的定义、声明以及数据赋值和传递操作等有严格的语法规则。它的数据类型可以分为标准数据类型和高级数据类型,还支持自定义类型Delphi是一种基于Object Pascal的编程语言,用于桌面、移动、Web和控制台软件开发。它在1995年首次亮相之前的最初开发过程中,被称为一个未命名的产品的代号。 通过将数据库工具和连接性作为新的Pascal产品的核心部分,Delphi成为了一个强大的数据库产品,并成功挤压了Borland的Pascal工具在市场上与Visual Basic-C竞争的地位。这使得Delphi成为传统Windows开发工具中的领导者,并击败了微软在市场上的主导地位。123 #### 引用[.reference_title] - *1* [【2.Delphi语法基础】2.Object Pascal数据类型](https://blog.csdn.net/chenhaiy/article/details/122929788)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* *3* [2021年关于Delphi/Object Pascal编程语言的现状和历史](https://blog.csdn.net/xyzhan/article/details/119244320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值