重构 - 自动提取方法的功能

时间:2017-09-27 00:37:12

标签: delphi refactoring keyboard-shortcuts

我的代码如下:

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

我想使用“提取方法”(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;

是否有机会强制使用功能?

1 个答案:

答案 0 :(得分:3)

不,Delphi中的Extract Method重构总是创建过程。