重构 - 自动提取方法以发挥作用

Refactoring - auto extract method to function

我有如下代码:

procedure T.Foo;
var
    bar: Integer;
    bar2: String;
begin
    bar :=  Abs((Round(1.2) + 17) * -1);
    bar2 := IntToStr(bar);
end;

我想使用 "Extract Method"(Ctrl+Shift+M) 提取函数,代码如下所示:

function T.ExtractedMethod: Integer;
begin
    result := Abs((Round(1.2) + 17) * -1);
end;

procedure T.Foo;
var
    bar: Integer;
    bar2: String;
begin
    bar :=  ExtractedMethod;
    bar2 := IntToStr(bar);
end;

不幸的是,当我选择行时:

bar :=  Abs((Round(1.2) + 17) * -1); //Ctrl+Shift+M on this line 

它提出了一个带有 var 参数的过程:

procedure T.ExtractedMethod(var bar: Integer);
begin
  bar := Abs((Round(1.2) + 17) * -1);
end;

有机会强制使用函数吗?

不,Delphi 中的提取方法重构总是创建过程。