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;
答案 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。