Delphi – 分配给’x’的值从未使用过

Delphi – 分配给’x’的值从未使用过,第1张

概述假设我有以下代码: function DoSomething:Boolean;var obj : TMyObject;i : Integer;begin Result := False; //We haven't executed GetValue() correctly yet obj := TMyObject.Create(); try //perform some 假设我有以下代码:

function DoSomething:Boolean;var obj : TMyObject;i : Integer;begin  Result := False; //We haven't executed GetValue() correctly yet  obj := TMyObject.Create();  try    //perform some code that may produce an exception            i := obj.GetValue();    //Set the return to True as we executed GetValue() successfully    Result := True;  finally    //do some cleanup    obj.Free;   end;end;

Delphi编译器抱怨分配给Result的值从未在第一行中使用.

我可能错过了一些明显的东西,但我不明白为什么编译器会优化它(如果优化已经开启).

我一直被教导要明确设置我的变量,以免混淆他们的价值观.最重要的是,如果GetValue()函数生成异常,则结果:= True; line永远不会执行.因此,无论Delphi初始化变量是什么,我们都会受到怜悯.

这是安全/可接受的代码吗?我应该简单地删除方法的第一行,这会使它更难阅读吗?如果失败,我将不得不关闭特定的编译器警告,但我不愿意这样做,因为此警告消息可以提供有用的信息.

解决方法 编译器是正确的.将False赋值给结果是徒劳的,函数可以返回的唯一值是True.

两种可能的执行路径是:

>该函数不会引发异常并返回True.
>该函数确实引发异常,因此根本不返回结果值.

解决方案很简单,删除将Result设置为False的代码行.在这一点上,完全清楚的是返回值没有任何意义,你可以简单地将函数转换为一个过程.

总结

以上是内存溢出为你收集整理的Delphi – 分配给’x’的值从未使用过全部内容,希望文章能够帮你解决Delphi – 分配给’x’的值从未使用过所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1270856.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存