【发布时间】:2010-10-22 12:24:18
【问题描述】:
匿名方法的一个好处是我可以在调用上下文中使用本地变量。是否有任何理由为什么这不适用于输出参数和函数结果?
function ReturnTwoStrings (out Str1 : String) : String;
begin
ExecuteProcedure (procedure
begin
Str1 := 'First String';
Result := 'Second String';
end);
end;
当然是非常人为的例子,但我遇到了一些有用的情况。
当我尝试编译它时,编译器抱怨他“无法捕获符号”。另外,当我尝试这样做时,我遇到了一个内部错误。
编辑我刚刚意识到它适用于普通参数,例如
... (List : TList)
这不是和其他情况一样有问题吗?谁保证每当执行匿名方法时引用仍然指向活动对象?
【问题讨论】:
-
使用指针代替引用参数。
标签: delphi scope delphi-2009 anonymous-methods