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

当我尝试在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上的行为? 有人知道是否有报道?


这是“Extract Method”重构中的一个错误。

作为替代,您可能想要使用ModelMaker Code Explorer重构工具中的“Extract Method”重构。 在99欧元,这是一个相对便宜的工具,从Delphi 5开始工作,最近的9.0.5更新大大改进了Extract Method重构,以至于我很久没有使用Delphi内置的重构。

两大好处:

  • 它会启动方法编辑器对话框,您可以在其中更改和重新排序参数,然后将这些参数反映到提取和调用代码中
  • 它将原始代码留在(* *)注释中,以防万一发生失败,或者您需要引用它
  • 此外,它还在代码中放置书签(编号为7,8和9),以便在提取的代码和呼叫站点之间轻松导航。

    强烈推荐。


    您可以在Oracle博客条目中找到有关提取方法的答案

    链接地址: http://www.djcxy.com/p/53913.html

    上一篇: Wrong behaviour/Bug in delphi2010 "extract method"

    下一篇: checked="checked" not rendering as checked radio button in Chrome