Delphi函数中如何判断TMemo类型参数不为空?现有判空代码无效
Delphi中TMemo参数的正确判空方法
在Delphi中,判断TMemo这类对象类型的参数是否为空,不能使用NULL,因为NULL主要适用于指针或变体类型。对于TComponent派生的对象(如TMemo),正确的判空方式是使用Assigned()函数。
修正后的代码
function send(logger: TMemo): boolean; begin Result := True; // 原代码未给函数返回值赋值,需补充 if Assigned(logger) then logger.Lines.Add('aaaa'); end;
核心说明
Assigned()函数专门用于检查对象引用是否指向有效的实例,是Delphi中判断对象非空的标准写法。- 直接使用
logger <> NULL的写法不符合Delphi编码规范,编译器会将NULL隐式转为nil,但在部分场景下会出现判断失效的问题,因此不推荐。 - 注意:原函数未给
Result赋值,这会导致返回值不确定,必须补充返回值的赋值逻辑。
内容的提问来源于stack exchange,提问作者vico
相关产品推荐
相关产品推荐

