2016-01-11 4 views
5

c#では、ソースコード内の物理的な改行にまたがる文字列を複数行のリテラル文字列に使用できます。Delphi/Pascalで複数行の逐語文字列を行うには

var someHtml = @"<table width="100%" border="0" cellspacing="0" cellpadding="5" align="center" class="txsbody"> 
    <tbody> 
     <tr> 
      <td width="15%" class="ttxb">&nbsp;</td> 
      <td width="85%" class="ttxb"><b>COMPANY NAME</b></td> 
     </tr> 
    </tbody> 
</table>"; 

が、どのようにパフォーマンスのためではなく、視覚的にC#ではなく、

Delphiでこれを行う方法を
Result :  = '<table width="100%" border="0" cellspacing="0" cellpadding="5" align="center" class="txsbody">'; 
Result : Result + '<tbody>'; 

答えて

14

ほどの見栄えのためにそれほど、文字列の連結を使用せずに、Delphiでこれを行うには文字列連結を使用せずに?

できません。複数行のリテラルはサポートされていません。連結は唯一の選択肢です。

ただし、Delphiコードは実行時に連結を実行します。コンパイル時にそれを実行するほうがはるかに優れています。だから、代わりに:

Result := 'foo'; 
Result := Result + 'bar'; 

書き込み

Result := 'foo' + 
      'bar'; 
+1

おかげで、その答えに感謝...しかし、これはそれが悲しいですどのように悲しい悲しいニュース –

+0

のですか? 'Result:= 'foo' + 'bar';はコンパイル時に行われるので、結果は単一の定数、' 'foobar''になります。私は非常に長い定数の文字列をこのようにコーディングしています、そして、彼らはどんなランタイムも使いません。静的テキストとしてコンパイルされているだけです。あなたの方法、 'Result:= 'foo';結果:= Result + 'bar';は実行時に連結するため遅いです。 –

+1

@RudyVelthuis Maxは連結したくないので悲しいです。彼は複数行のリテラルを使いたいと思っています。 –