gpt4 book ai didi

delphi - Delphi 2006中调试 ‘WITH’语句的问题

转载 作者:行者123 更新时间:2023-12-03 14:55:01 25 4
gpt4 key购买 nike

Possible Duplicate:
What's wrong with Delphi's “with”

我在调试 BDS 2006 中使用“WITH”语句的代码时遇到问题调试器不会显示类或记录中变量的值。是我做错了什么还是 BDS 2006 有错误?

type
TNumber = class
Num: Integer;
end;

implementation

{$R *.dfm}

var
MyNumber: TNumber;

procedure TForm2.FormCreate(Sender: TObject);
begin
MyNumber := TNumber.Create;
MyNumber.Num := 10; /// MyNumber.Num Can be seen with debugger
with MyNumber do
begin
Num := Num +1 ; /// Num is not seen by the debugger
MyNumber.Num := Num +1 ; /// MyNumber.Num is seen but Num is not seen by the debugger
end;
end;

编辑:

当然可以使用变量的全名但是如果你有一个超过一级的复杂结构,事情就会变得非常困惑

最佳答案

With 被许多语言功能视为属于“仅仅因为拥有它并不意味着您必须使用它”类别。在很少的情况下,我会给它留出空间 - 我发现一两种情况下,当使用编译器不做的极其复杂的多级结构时,它的使用是必不可少的正如您所期望的那样,没有它,它更容易包含,但在 10 年的 Delphi 编码中,我认为这些可以用一只手的手指来计算。

确实在示例中经常被使用,因为代码看起来确实更干净,但实际上在检查代码时确定变量是简单还是结构的一部分对维护产生影响你没有写过或者有一段时间没有使用过的事情很容易就超过了。我使用过的每个版本的 Delphi 上的调试器的已知问题是最关键的。

关于delphi - Delphi 2006中调试 ‘WITH’语句的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/312321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com