En .Net (C # et VB.NET) Si j'ai un texte multiligne comme celui-ci:
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/
Puis-je définir la variable comme ceci?
Dim Logo As String = ("
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ")
Console.WriteLine(Logo)
... au lieu de ça:
Console.WriteLine("__ __ ")
Console.WriteLine("\ \ / / | | ")
Console.WriteLine(" \ V /___ _ _ _ __ | | ___ __ _ ___ ")
Console.WriteLine(" \ // _ \| | | | '__| | | / _ \ / _` |/ _ \ ")
Console.WriteLine(" | | (_) | |_| | | | |___| (_) | (_| | (_) |")
Console.WriteLine(" \_/\___/ \__,_|_| \_____/\___/ \__, |\___/ ")
Console.WriteLine(" __/ | ")
Console.WriteLine(" |___/ ")
... ou bien ceci:
Dim Logo As String = ( _
"__ __ _ " & vbNewLine & _
"\ \ / / | | " & vbNewLine & _
" \ V /___ _ _ _ __ | | ___ __ _ ___ " & vbNewLine & _
" \ // _ \| | | | '__| | | / _ \ / _` |/ _ \ " & vbNewLine & _
" | | (_) | |_| | | | |___| (_) | (_| | (_) |" & vbNewLine & _
" \_/\___/ \__,_|_| \_____/\___/ \__, |\___/ " & vbNewLine & _
" __/ | " & vbNewLine & _
" |___/ ")
Vous (initialement) avez marqué cela comme c #, mais affichez VB code. Pour c #: utilisez le @
spécificateur:
string myText =
@"line 1
line 2
line 3"
Notez que si vous ne voulez pas de ligne vierge au début de votre chaîne, assurez-vous de mettre le @"
sur la même ligne que la première ligne de votre texte, comme je l'ai fait ci-dessus.
Pour VB.NET, il n'y a pas de support direct pour cela, mais vous pouvez utiliser le hack Nice de cette réponse pour le contourner:
Dim s As String = <a>line 1
line 2
line 3</a>.Value
Pensez également à créer une ressource de chaîne; vous pouvez y ajouter des sauts de ligne (assurez-vous d'utiliser shift-enter, selon la note de cette réponse ), puis chargez la ressource en utilisant quelque chose de similaire à
Dim myString As String = My.Resources.MyString
Mise à jour pour Visual Studio 2015: Évidemment, vb.net était le cas difficile ici, mais à partir de VS2015, il prend en charge les chaînes multi-lignes d'une manière similaire aux chaînes verbatim c #, mais sans le précédent @
.
Notez que les terminateurs de ligne incorporés dans la chaîne sont les terminateurs de ligne réels fournis par l'éditeur de votre choix. Pour VS, c'est \r\n
.
Exemple:
Source ici .
Pour le nouveau chaînes interpolées introduit dans VS2015/C # 6, préfixez la chaîne avec $@
en C #:
string multiline = $@"
[configuration]
name=Fred
age={age}";
Dans VB.NET, laissez simplement le @
:
Dim multiline As String = $"
[configuration]
name=Fred
age={age}"
En C #, vous pouvez utiliser des chaînes brutes (@), comme ça:
private string Logo = @"
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ";
Utilisez des chaînes Verbatim.
Le symbole @
Indique au constructeur de chaîne d'ignorer les sauts de ligne.
Voir MSDN pour plus d'informations. Littéraux de chaîne vs chaînes Verbatim
Par exemple
string verbatim = @"v
e
r
batim"
Votre exemple
Dim Logo As String = (@"
__ __ _
\ \ / / | |
\ V /___ _ _ _ __ | | ___ __ _ ___
\ // _ \| | | | '__| | | / _ \ / _` |/ _ \
| | (_) | |_| | | | |___| (_) | (_| | (_) |
\_/\___/ \__,_|_| \_____/\___/ \__, |\___/
__/ |
|___/ ")
Console.WriteLine(Logo)
Oui, vous devez utiliser @
symbole:
string t = @"t
e
s
t"
Genre de...
C'est fait comme ça:
Dim logo = " " & vbCrLf & _
"__ __ " & vbCrLf & _
"\ \ / / | | " & vbCrLf & _
etc.