为什么Delphi编译器在方法调用中的最后一个参数之后允许使用逗号?

时间:2012-01-12 17:19:28

标签: delphi compiler-construction history

说我有一个像这样的功能

procedure TMyObject.DoSomething(text: string);
begin
    // do something important with the text
end;

当我这样称呼方法时

DoSomething('some text', );

代码编辑器在最后一个参数后面的逗号中显示一个红色波浪形,就像我预期的那样。但是,编译器接受此代码,一切都像逗号不在那里一样。

为什么这似乎是合法的语法?是否有一些历史原因今天仍然支持(我在Delphi 2006中试过这个并且others似乎也在2007年经历过这种情况)?

1 个答案:

答案 0 :(得分:6)

该代码导致Delphi 6,2010和XE2中的编译错误(E2034实际参数太多)。我想这是你的版本中的编译器错误,因为它不是合法的语法。