delphi2010中的错误行为/错误“提取方法”

时间:2011-07-26 04:46:49

标签: delphi refactoring delphi-2010

当我尝试在if语句中提取方法时,我正面临这个问题。我无法找到任何报告的错误。

procedure TForm1.BitBtn3Click(Sender: TObject);
var
  x: integer;
  b: boolean;
begin
  if true then
    x := 8    //********************** i try to extract this line
  else
    x := 6;

  showmessage(inttostr(x));
end;

我得到的结果是:

procedure TForm1.BitBtn3Click(Sender: TObject);
var
  x: integer;
  b: boolean;
begin
  if true then
    newMethode
  else
    x := 6;

  showmessage(inttostr(x));
end;

新的Methode是:

procedure TForm1.newMethode;
var
  x: Integer;
begin
  x := 8;
end;

有人可以查看Delphi XE的行为吗?有谁知道是否有报道?

2 个答案:

答案 0 :(得分:4)

这是“提取方法”重构中的一个错误。

作为替代方案,您可能希望使用ModelMaker Code Explorer重构工具中的“提取方法”重构。 99欧元,它是一个relatively cheap工具,从Delphi 5开始工作,recent 9.0.5 updates大大改进了他们的Extract Method重构,以至于我没有使用Delphi内置的重构一会儿。

两大好处:

  • 启动方法编辑器对话框,您可以在其中更改和重新排序参数,然后将这些参数反映在提取和调用代码中
  • 它会将原始代码保留在(* *)注释中,以防万一发生故障,或者您需要引用它

此外,它还在代码中放置书签(编号为7,8和9),以便在提取的代码和呼叫站点之间轻松导航。

强烈推荐。

答案 1 :(得分:0)

您可以在Oracle Blogs Entry

找到有关提取方法的答案