number escape ejemplos c# vb.net string escaping verbatim-string

c# - escape - ¿Cómo hacer una literal litera literal en VB.NET?



string c# ejemplos (7)

@MarkJ ya lo señaló en la publicación de @Jon Skeet.

VB.Net admite esta característica abominable , si es absolutamente necesario utilizar una versión literal a través de un XML Literal en línea.

¡Considera guardar en caché la cadena! No evalúes esto cada vez ...

Imports System.Xml.Linq Dim cmdText as String = <![CDATA[ SELECT Field1, Field2, Field3 FROM table WHERE Field1 = 1 ]]>.Value

[editar 2015-Ene-5]

VB14 / VS2015 admite cadenas de varias líneas sin engaños.

Dim cmdText as String = " SELECT Field1, Field2, Field3 FROM table WHERE Field1 = 1"

¿Cómo se hace una literal litera literal en VB.NET?

Esto se logra en C # de la siguiente manera:

String str = @"c:/folder1/file1.txt";

Esto significa que las barras invertidas se tratan literalmente y no como caracteres de escape.

¿Cómo se logra esto en VB.NET?



Los literales de XML de VB lamentablemente no funcionarán en una página de afeitar .vbhtml. Esperemos que eso cambie en la próxima versión.


Todos los literales de cadena en VB.NET son literales literales literales. Simplemente escribe

Dim str As String = "c:/folder1/file1.txt"

VB.NET no admite caracteres de control en línea. Entonces las barras invertidas siempre se interpretan literalmente.

El único carácter que debe escaparse es la comilla doble, que se escapa al doblarla, como lo hace en C #

Dim s As String = """Ahoy!"" cried the captain." '' "Ahoy!" cried the captain.


VB no trata / como un carácter de escape de todos modos, por lo que puede simplemente escribir la cadena como un literal normal:

Dim str = "c:/folder1/file1.txt"

Por lo que yo sé, VB no tiene ninguna forma de alcanzar el otro objetivo principal de los literales literales literales, el de permitir múltiples líneas; VbCrLf que para eso tienes que usar VbCrLf . (O Environment.NewLine por supuesto, depende de sus requisitos. A veces desea el separador de línea específico del sistema, a veces desea uno específico según lo requiera un protocolo en particular, etc.)

EDITAR: Las versiones más recientes de VB admiten líneas múltiples en literales de cadenas


VB.NET no reconoce "/" como un carácter de escape. Pero tal vez pueda usar una solución adicional (tenga en cuenta que funciona lentamente que concatenación, por ejemplo):

Dim s As String = Regex.Unescape("c://folder1//file1.txt/nc://folder1//file2.txt/nc://folder1//file3.txt")

En este caso, la cadena "s" contiene tres líneas. El símbolo "/" protege el próximo "/" del método regex Unescape (), es por eso que se repite dos veces cada vez.

"/ n" es un carácter especial de "nueva línea" similar a C #. También puede usar "/ t" (pestaña), y así sucesivamente.


Dim sourceText As String = <string> Imports Microsoft.VisualBasic Imports System Imports System.Collections Imports Microsoft.Win32 Imports System.Linq Imports System.Text Imports Roslyn.Compilers Imports System.ComponentModel Imports System.Runtime.CompilerServices Imports Roslyn.Compilers.VisualBasic Namespace HelloWorld Module Program Sub Main(args As String()) Console.WriteLine("Hello, World!") End Sub End Module End Namespace </string>