delphi2010 "extract method"中的错误行为/错误



当我试图在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;

和新的方法是:

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

有人能检查一下Delphi XE的行为吗?有人知道有没有上报吗?

这是"Extract Method"重构中的一个bug。

作为一种选择,您可能希望使用ModelMaker Code Explorer重构工具中的"Extract Method"重构。在99欧元,这是一个相对便宜的工具,从Delphi 5开始工作,最近的9.0.5更新大大改善了他们的提取方法重构,以至于我已经有一段时间没有使用Delphi内置的提取方法了。

两大好处:

  • 启动方法编辑器对话框,您可以在其中更改和重新排序参数,然后在提取和调用的代码中反映
  • 它在(* *)注释中留下原始代码,以防某些东西失败,或者您需要引用它

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

强烈推荐。

您可以在Oracle Blogs Entry

找到有关提取方法的答案。

相关内容

最新更新