首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TStringList计数返回负数

TStringList计数返回负数
EN

Stack Overflow用户
提问于 2018-04-02 17:58:51
回答 1查看 192关注 0票数 0

我希望使用count属性来计数TStringList中的项目数(字符串)。TStringList.Count返回我"-307586000“为什么?

这是我在拉撒路的代码:

代码语言:javascript
复制
procedure Test;
  var
    list: TStringList;
    vrai: boolean;
    nCol, i: integer;

begin
 vrai := true;
 list.Create;
 nCol := 5;
 for i := 0 to nCol-1 do
   if vrai then
     begin
       list.Add(intToStr(i));
       showmessage(IntToStr(list.Count));
     end;
end;

伙计们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-02 18:00:25

当通过对象变量而不是类类型调用构造函数时,需要将list.Create;更改为list := TStringList.Create;,构造函数将像普通方法一样被调用。实际上没有创建任何TStringList对象,因此调用list.Add()list.Count是未定义的行为。幸运的是,您的代码没有简单崩溃。

另外,在使用完list.Free;之后,不要忘记调用list

试试这个:

代码语言:javascript
复制
procedure Test;
var
  list: TStringList;
  vrai: boolean;
  nCol, i: integer;
begin
  vrai := true;
  list := TStringList.Create;
  try
    nCol := 5;
    for i := 0 to nCol-1 do
    begin
      if vrai then
      begin
        list.Add(IntToStr(i));
        ShowMessage(IntToStr(list.Count));
      end;
    end;
  finally
    list.Free;
  end;
end;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49616252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档