W1068 直接編集での文字列の変更は将来的にサポートされない可能性があります(Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動


このメッセージは、文字列が直接変更されようとしていることを警告として示しています。たとえば、次のようなよくある操作(文字列内にインデックスを付け、その文字列の一部を変更する)を不変文字列に対して行うことはできません。

 S[1] := 'A';

上記のような文字列操作を使用した場合、'W1068: 直接編集での文字列の変更は将来的にサポートされない可能性があります' という警告が Delphi モバイル コンパイラから出力されます。

このようなかなり一般的な操作が今後 Delphi デスクトップ コンパイラの言語面での変更でサポートされなくなる可能性があることを承知しておいてください。そうなった時点で、この警告はエラーになります。

Delphi モバイル コンパイラでは不変文字列(インデックス付けも編集もできない文字列)がサポートされています。DCCIOSARM および DCCIOS32 では、インデックスが 0 から始まる不変文字列のみサポートしています。

文字列処理には、TStringHelper の関数を使用します。
文字列を直接編集するには、TStringBuilder を使用します。

不変文字列を検査するには、次のいずれかを行います。

  • コンパイラ指令 {$WARN IMMUTABLE_STRINGS <ON|ERROR>} を設定する。
    • ON を指定すると、コード文字列を直接編集するたびに警告 W1068 の表示が有効になります。
    • ERROR を指定すると、このメッセージはエラー E1068 として有効になります。
  • [ヒントと警告]ページで、[直接編集での文字列の変更は....]の警告を[True]か[エラー]に設定します。

関連項目