下面的代碼示例將在 Delphi XE5 中編譯為 Seattle (10.0)。在 Delphi Tokyo (10.2) 中,ExcludeEmpty 引數出現編譯錯誤(E2003 未宣告的識別符號:'ExcludeEmpty')。
出了什么問題?
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var S : String ;
SA : Tarray<String> ;
begin
S := '1234 5678' ;
SA := S.Split([' '], ExcludeEmpty)
end.
uj5u.com熱心網友回復:
這是一個舊列舉,并且值(None, ExcludeEmpty, ExcludeLastEmpty)沒有像新列舉那樣的前綴,以避免識別符號沖突。編譯{$SCOPEDENUMS ON}強制使用范圍來防止沖突問題。
SA := S.Split([' '], TStringSplitOptions.ExcludeEmpty);
我不知道使用此選項編譯此列舉的所有 Delphi 版本,但 Delphi 11 可以。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/433703.html
