Why variables are declared as TStrings and created as TStringList?

后端 未结 4 945
故里飘歌
故里飘歌 2021-02-06 21:46

Why variables are declared as TStrings and created as TStringList?

eg: the var sl is declared as TStrings but created

4条回答
  •  囚心锁ツ
    2021-02-06 22:03

    TStrings is an abstract type that doesn't have all methods implemented.

    TStringList is a descendant of TStrings and implements all functions. In your code, you could declare your variable also as TStringList.

    However e.g. on function definitions it makes sense to accept a TStrings parameter instead of a TStringList:

    procedure doSomething(lst: TStrings);
    

    This enables the function to work with all implementations of TStrings, not only TStringList.

提交回复
热议问题