zoukankan      html  css  js  c++  java
  • 小心,Delphi函数的返回值你必须管!

    这两天遇到问题,我们的FMX项目,其中一个功能在windows上运行正常,在Android上不正常。

    查到最后,竟然是同事没有处理一个函数的返回值造成的。

    function Test(aName:string):TObject;
    var
      o:TObject;
    begin
      ...
      if aName='123' then
      begin
         o:=TObject.Create;
         result:=o;
      end;
    end;

    类似上面的代码,当aName<>123时,在windows上,返回nil,而在android上,则返回非nil下面是调用代码:

    ...
    if Test('123')=nil then
    begin
       ...
    end;

    最后,修正如下:

    function Test(aName:string):TObject;
    var
      o:TObject;
    begin
      result:=nil;//修正.
      ...
      if aName='123' then
      begin
         o:=TObject.Create;
         result:=o;
      end;
    end;

    印象中写过有大牛写过,必须养成处理函数默认返回值的习惯。这回被现实上了一课!

  • 相关阅读:
    Redis的基本操作
    Redis下载和安装-windows
    Redis介绍
    day08 网络编程
    day07
    day06
    python day05
    Day04
    windows自带反编译chm文件
    CSS Hack表 各版本IE、chrome、firefox、opera
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/12461701.html
Copyright © 2011-2022 走看看