小编urt*_*let的帖子

IfThen(Assigned(Widget),Widget.Description,'No Widget')不会崩溃。应该是?

在我帮助维护的代码中,我发现了多个示例代码,如下所示:

Description := IfThen(Assigned(Widget), Widget.Description, 'No Widget');
Run Code Online (Sandbox Code Playgroud)

我希望当Widget为零时会崩溃,但是当我对其进行测试时,它运行良好。

如果我在“项目”-“选项”-“编译器”中关闭了“代码内联控件”,则重新编译它,则会出现访问冲突。

似乎因为IfIfn被标记为内联,所以如果Widget为nil,则编译器通常不会评估Widget.Description。

有什么理由应该对代码进行“修复”,因为它似乎没有被破坏?他们不想不必要地更改代码。可能会咬他们吗?

我已经用Delphi XE2和XE6对其进行了测试。

delphi

5
推荐指数
2
解决办法
322
查看次数

标签 统计

delphi ×1