11
A
回答
18
最大的区别是,当方法的参数不正确时,对于非重载方法,错误消息明显更好。
program Test;
procedure F(X: Integer);
begin
end;
procedure G(X: Integer); overload;
begin
end;
var
P: Pointer = nil;
begin
F(P); // E2010 Incompatible types: 'Integer' and 'Pointer'
G(P); // E2250 There is no overloaded version of 'G' that can be called with these arguments
end.
更微妙的是,一个重载的方法可能会重载您不知道的函数。考虑标准IfThen
函数。 StrUtils.IfThen
存在恰好一次:
function IfThen(AValue: Boolean; const ATrue: string;
AFalse: string = ''): string; overload; inline;
但它被标记为overload
。这是因为它过载了Math.IfThen
,并且如果单个设备同时使用Math
和StrUtils
,则不合格的IfThen
将根据参数解析为正确的功能,并且不管uses
列表中设备的顺序如何。
相关问题
- 1. dict.keys()中的关键字与关键字有什么区别?
- 2. oracle sql中的join关键字和inner join关键字有什么区别?
- 3. C#中的覆盖和新关键字有什么区别?
- 4. java和super关键字有什么区别?
- 5. IsAssignableFrom,IsInstanceOfType和is关键字有什么区别?
- 6. 关键字:is和==有什么区别python
- 7. 使用synchronized关键字和锁之间有什么区别
- 8. 有什么区别与加入关键字加入或加入=
- 9. 元“关键字”和“关键字”有区别
- 10. 检查和外键有什么区别?
- 11. 主键和身份有什么区别?
- 12. 套接字级别的IPv4和IPv6有什么区别吗?
- 13. Viterbi CYK和Probabilistic CYK算法有什么区别,有什么区别吗?
- 14. 用“var”声明而没有“var”关键字的变量有什么区别?
- 15. vbNullString和“”之间有什么区别吗?
- 16. svg和png img有什么区别吗?
- 17. Spring和Spring.net有什么区别吗?
- 18. html和*有什么区别吗?
- 19. com.cloudera.sqoop.SqoopOptions vs org.apache.sqoop.SqoopOptions有什么区别吗?
- 20. 这些陈述有什么区别吗?
- 21. RPC和IPC有什么区别吗?
- 22. log4net.Config.BasicConfigurator.Configure()和log4net.Config.XmlConfigurator.Configure()有什么区别吗?
- 23. UserLocalServiceUtil.addRoleUser和RoleLocalServiceUtil.addUserRole有什么区别吗?
- 24. window.onkeydown和document.onkeydown有什么区别吗?
- 25. UserDict和Dict有什么区别吗?
- 26. const_cast VS可变吗?有什么区别?
- 27. .NET和ASP.NET有什么区别吗
- 28. s ++和* s ++有什么区别吗?
- 29. ERD和“关系图”有什么区别?
- 30. 有什么区别
不错 - 我从来不知道它可以用来解决这些问题! –