我可以在Delphi中使用字符串“IsEmpty”方法吗?

时间:2009-06-19 12:36:20

标签: delphi string

Embaracdero文档"IsEmpty" methods表示我已成功使用C ++ Builder代码的字符串类型。

WideString s;

if (s.IsEmpty())
   ....

我在Delphi中尝试过相同的操作,无法编译:

var s: WideString;
begin
  if s.IsEmpty then
  ....

我知道你可以用空字符串比较,或者调用Length函数,但是可以从Delphi调用这个IsEmpty方法吗?

编辑:只是为了澄清,这并不意味着String vs Widestring问题。

基本上,我链接到上面的文档描述了一个Pascal语法,以及一个C ++语法,但这似乎不起作用。我认为这只是文档中的一个缺陷。

如果System :: WideString :: WideString为空,则返回true。

Pascal:函数IsEmpty:bool;

5 个答案:

答案 0 :(得分:14)

String不是Delphi中的类,因此它没有方法,你必须使用函数进行字符串操作,如Length,Copy等... String是C ++中的一个类,所以也许你对此感到困惑。

答案 1 :(得分:5)

没有。即使在D2009中,字符串也不是WideString。你也不想要;与nil / empty字符串比较比方法调用快得多。

在德尔福:

var 
  s: string;
begin
  if s = '' then begin
    ShowMessage('It is empty or nil.');

... for string检测nil和空字符串(= nil)。

答案 2 :(得分:5)

Delphi是一种混合语言。它包含基本类型和类。只有类(和记录和对象)可以包含方法。

String是一种基本类型,虽然是特殊类型。它是唯一具有保留字的类型。这就是为什么它通常使用小写(字符串)编写,而不像其他具有起始资本(Integer)的类型。

如果您愿意,可以:

type
  TString = class
  private
    FString: string;
  public
    constructor Create(const AValue: string);

    property &String: string read FString write FString;
    property IsEmpty: Boolean read GetIsEmpty;
    // ...
  end;

答案 3 :(得分:1)

if Trim(s)='' then

???

答案 4 :(得分:0)

在新版本中,您还可以使用许多字符串助手功能和s.IsEmpty。