Ele*_*ios 30 .net c# vb.net string
在.Net(C#和VB.NET)如果我有这样的多行文字:
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/
Run Code Online (Sandbox Code Playgroud)
我可以像这样设置变量吗?
Dim Logo As String = ("
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ")
Console.WriteLine(Logo)
Run Code Online (Sandbox Code Playgroud)
......而不是其他:
Console.WriteLine("__ __ ")
Console.WriteLine("\ \ / / | | ")
Console.WriteLine(" \ V /___ _ _ _ __ | | ___ __ _ ___ ")
Console.WriteLine(" \ // _ \| | | | '__| | | / _ \ / _` |/ _ \ ")
Console.WriteLine(" | | (_) | |_| | | | |___| (_) | (_| | (_) |")
Console.WriteLine(" \_/\___/ \__,_|_| \_____/\___/ \__, |\___/ ")
Console.WriteLine(" __/ | ")
Console.WriteLine(" |___/ ")
Run Code Online (Sandbox Code Playgroud)
......或者其他:
Dim Logo As String = ( _
"__ __ _ " & vbNewLine & _
"\ \ / / | | " & vbNewLine & _
" \ V /___ _ _ _ __ | | ___ __ _ ___ " & vbNewLine & _
" \ // _ \| | | | '__| | | / _ \ / _` |/ _ \ " & vbNewLine & _
" | | (_) | |_| | | | |___| (_) | (_| | (_) |" & vbNewLine & _
" \_/\___/ \__,_|_| \_____/\___/ \__, |\___/ " & vbNewLine & _
" __/ | " & vbNewLine & _
" |___/ ")
Run Code Online (Sandbox Code Playgroud)
Geo*_*off 54
您(最初)将其标记为c#,但显示VB代码.对于c#:使用说明@符:
string myText =
@"line 1
line 2
line 3"
Run Code Online (Sandbox Code Playgroud)
请注意,如果您不希望在字符串的开头有空行,请确保将其@"放在与文本第一行相同的行上,如上所述.
对于VB.NET,没有直接的支持,但你可以使用这个答案的好的黑客来解决它:
Dim s As String = <a>line 1
line 2
line 3</a>.Value
Run Code Online (Sandbox Code Playgroud)
还要考虑创建一个字符串资源; 你可以在那里添加换行符(确保你使用shift-enter,根据这个答案中的注释),然后使用类似的东西加载资源
Dim myString As String = My.Resources.MyString
Run Code Online (Sandbox Code Playgroud)
Visual Studio 2015更新:显然vb.net在这里很难用,但从VS2015开始,它支持多行字符串,类似于c#逐字字符串,但没有前面的@.
请注意,字符串中嵌入的行终止符是您选择的编辑器提供的实际行终止符.对于VS,这是\r\n.
例:

来源于此.
对于VS2015/C#6中引入的新插值字符串,$@在C#中为字符串添加前缀:
string multiline = $@"
[configuration]
name=Fred
age={age}";
Run Code Online (Sandbox Code Playgroud)
在VB.NET中,只需省略@:
Dim multiline As String = $"
[configuration]
name=Fred
age={age}"
Run Code Online (Sandbox Code Playgroud)
Vla*_*mir 16
在C#中,您可以使用原始字符串(@),如下所示:
private string Logo = @"
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ";
Run Code Online (Sandbox Code Playgroud)
Sam*_*ach 13
使用逐字字符串.
该@符号告诉字符串构造函数忽略换行符.
有关更多信息,请参阅MSDN.字符串文字与逐字字符串
例如
string verbatim = @"v
e
r
batim"
Run Code Online (Sandbox Code Playgroud)
你的榜样
Dim Logo As String = (@"
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ")
Console.WriteLine(Logo)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46750 次 |
| 最近记录: |