在.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 & _
" |___/ ")
6条答案
按热度按时间vsaztqbk1#
您(最初)将其标记为c#,但显示VB代码。对于c#:使用
@
说明符:请注意,如果不希望字符串的开头为空行,请确保将
@"
与文本的第一行放在同一行,就像我上面所做的那样。对于VB.NET,没有直接支持这个,但是你可以使用this answer中的一个很好的技巧来绕过它:
还可以考虑创建字符串资源;您可以在其中添加换行符(根据this answer中的注解,确保使用shift-enter),然后使用类似于以下代码的代码加载资源
Update for Visual Studio 2015: Obviously vb.net was the difficult case here, but as of VS2015 it supports multi-line strings in a fashion similar to c# verbatim strings, but without the preceding
@
.注意,嵌入字符串的行结束符实际上是由您选择的编辑器提供的行结束符。对于VS,这是
\r\n
。示例:
源代码here。
对于VS2015/C #6中引入的新interpolated strings,在C#中使用
$@
作为字符串的前缀:在VB.NET中,只需省略
@
:23c0lvtd2#
在C#中,可以使用原始字符串(@),如下所示:
fbcarpbf3#
使用逐字字符串。
@
符号告诉字符串构造函数忽略换行符。更多信息请参见MSDN。字符串文字与逐字字符串
例如
你的例子
ggazkfy84#
是的,您应该使用
@
符号:ej83mcc05#
有点...
它是这样做的:
等等。
s4n0splo6#
C#11和. NET 7版本,带有原始字符串文字: