14

C#では次を使用できます:

string myBigString = @"

<someXmlForInstance>
  <someChild />
</someXmlForInstance>

";

F#でこれを行う方法は?

4

3 に答える 3

16

F# 3.0、VS 2012 では、三重引用符で囲まれた文字列のサポートが追加されました。

三重引用符で囲まれた文字列では、三重引用符 ("""...""") の間のすべてがそのまま保持されます。逃げることはまったくありません。その結果、XAML を文字列リテラルとして使用したい場合は、次のように簡単です。

let xaml = """ 
<StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
            Name="mainPanel"> 
  <Border BorderThickness="15.0" BorderBrush="Black"> 
    <StackPanel Name="stackPanel1"> 
      <TextBlock Text="Super BreakAway!" FontSize="24" HorizontalAlignment="Center" /> 
      <TextBlock Text="written in F#, by Brian McNamara - press 'p' to pause" 
                 FontSize="12" HorizontalAlignment="Center" /> 
      <Border BorderThickness="2.0" BorderBrush="Black"> 
        <Canvas Name="canvas" Background="White" /> 
      </Border> 
    </StackPanel> 
  </Border> 
</StackPanel>"""
于 2012-08-01T14:13:39.827 に答える
1

試してみてください:

let str1 = "abc
     def"
let str2 = "abc\
     def"

詳細については、http: //msdn.microsoft.com/en-us/library/362314fe.aspxを参照してください。

于 2012-08-01T11:01:39.310 に答える
1

@ 記号が前に付いている場合、リテラルはそのままの文字列です。これは、2 つの引用符文字が 1 つの引用符文字として解釈されることを除いて、エスケープ シーケンスが無視されることを意味します。

ソース:文字列 (F#)

于 2012-08-01T10:57:06.637 に答える