重构 - 自动提取方法以发挥作用
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 中的提取方法重构总是创建过程。
我有如下代码:
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 中的提取方法重构总是创建过程。