博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解 Delphi 的类(十) - 深入方法[23] - 重载
阅读量:6983 次
发布时间:2019-06-27

本文共 918 字,大约阅读时间需要 3 分钟。

  hot3.png

{  下面的函数重名, 但参数不一样, 此类情况必须加 overload 指示字;  调用时, 会根据参数的类型和个数来决定调用哪一个;  这就是重载.}function MyFun(s: string): string; overload;begin  Result := '参数是一个字符串: ' + s;end;function MyFun(i: Integer): string; overload;begin  Result := '参数是一个整数: ' + IntToStr(i);end;function MyFun(x,y: Integer): string; overload;begin  Result := Format('参数是两个整数: %d 和 %d', [x,y]);end;{测试}procedure TForm1.Button1Click(Sender: TObject);var  str: string;begin  str := MyFun('万一');  ShowMessage(str);     {参数是一个字符串: 万一}  str := MyFun(99);  ShowMessage(str);     {参数是一个整数: 99}  str := MyFun(6,8);  ShowMessage(str);     {参数是两个整数: 6 和 8}end;         //另外还要注意关于重载和默认参数的问题, 譬如, 下面的重载是不可行的:function MyFun(x,y: Integer): string; overload;begin  Result := IntToStr(x + y);end;function MyFun(x: Integer; y: Integer = 1): string; overload;begin  Result := IntToStr(x + y);end;{因为当我们这样调用时: MyFun(a,b); 系统就不知道要调用哪个了!}

转载于:https://my.oschina.net/hermer/blog/319870

你可能感兴趣的文章
ajax实现点击加载更多
查看>>
为什么JavaScript没有类而使用原型?——JavaScript语言特性来历
查看>>
TarsGo新版本发布,支持protobuf,zipkin和自定义插件
查看>>
Flutter 如何创建并发布 Plugin (VS Code + GitHub 发布)
查看>>
TableStore实战:GEO索引打造亿量级店铺搜索系统
查看>>
js的防抖和节流
查看>>
redis学与思系列(2)
查看>>
学习springBoot(11)shiro安全框架
查看>>
c++那些事儿11 0 STL List
查看>>
问题记录——跨域
查看>>
PHP7.3即将到来,快来了解一下新特性吧
查看>>
1月9日云栖精选夜读:场景化封装,一站式使用,普惠AI集成 ——阿里云发布智能媒体管理产品...
查看>>
Java Servlet Filter 详解
查看>>
区块链走向何方,或许从美国证劵史可以得到答案
查看>>
Golang web之http标准库简析
查看>>
项目冷启动,搭建MVP产品框架
查看>>
Python爬取网易云音乐歌单歌曲
查看>>
掘金markdown笔记快捷键
查看>>
[译] 为什么加密货币泡沫会破裂?
查看>>
Python 发送邮件
查看>>