.Net(C#およびVB.NET)の場合、次のような複数行のテキストがある場合:
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/
このように変数を設定できますか?
Dim Logo As String = ("
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ")
Console.WriteLine(Logo)
...これの代わりに:
Console.WriteLine("__ __ ")
Console.WriteLine("\ \ / / | | ")
Console.WriteLine(" \ V /___ _ _ _ __ | | ___ __ _ ___ ")
Console.WriteLine(" \ // _ \| | | | '__| | | / _ \ / _` |/ _ \ ")
Console.WriteLine(" | | (_) | |_| | | | |___| (_) | (_| | (_) |")
Console.WriteLine(" \_/\___/ \__,_|_| \_____/\___/ \__, |\___/ ")
Console.WriteLine(" __/ | ")
Console.WriteLine(" |___/ ")
...またはこれ以外:
Dim Logo As String = ( _
"__ __ _ " & vbNewLine & _
"\ \ / / | | " & vbNewLine & _
" \ V /___ _ _ _ __ | | ___ __ _ ___ " & vbNewLine & _
" \ // _ \| | | | '__| | | / _ \ / _` |/ _ \ " & vbNewLine & _
" | | (_) | |_| | | | |___| (_) | (_| | (_) |" & vbNewLine & _
" \_/\___/ \__,_|_| \_____/\___/ \__, |\___/ " & vbNewLine & _
" __/ | " & vbNewLine & _
" |___/ ")
あなたは(最初)これをc#とマークしましたが、VBコードを表示します。c#の場合:@
指定子:
string myText =
@"line 1
line 2
line 3"
文字列の先頭に空白行が必要ない場合は、@"
上記のように、テキストの最初の行と同じ行に。
VB.NETの場合、これを直接サポートすることはできませんが、 this answer からNiceハックを使用して回避できます。
Dim s As String = <a>line 1
line 2
line 3</a>.Value
文字列リソースの作成も検討してください。そこに改行を追加することができます( this answer のノートごとにshift-enterを使用するようにしてください)。次に、
Dim myString As String = My.Resources.MyString
Visual Studio 2015の更新:明らかにvb.netはここでは難しいケースでしたが、VS2015の時点では、c#の逐語的文字列と同様の方法で複数行の文字列をサポートしていますが、前の@
。
文字列に埋め込まれた行末記号は、選択したエディターが提供する実際の行末記号であることに注意してください。 VSの場合、これは\r\n
。
例:
ソース ここ 。
VS2015/C#6で導入された新しい 補間文字列 の場合、文字列の前に$@
C#の場合:
string multiline = $@"
[configuration]
name=Fred
age={age}";
VB.NETでは、@
:
Dim multiline As String = $"
[configuration]
name=Fred
age={age}"
C#では、次のように生の文字列(@)を使用できます。
private string Logo = @"
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ";
Verbatim文字列を使用します。
@
記号は、改行を無視するように文字列コンストラクターに指示します。
詳細については、 [〜#〜] msdn [〜#〜] を参照してください。文字列リテラルと逐語的文字列
例えば
string verbatim = @"v
e
r
batim"
あなたの例
Dim Logo As String = (@"
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ")
Console.WriteLine(Logo)
はい、@
シンボルを使用する必要があります。
string t = @"t
e
s
t"
やや...
これは次のように行われます。
Dim logo = " " & vbCrLf & _
"__ __ " & vbCrLf & _
"\ \ / / | | " & vbCrLf & _
等.