Pregunta

Si bien la búsqueda de la forma de escapar de una comilla simple en String.Format, he encontrado la respuesta a SO: Escapar comilla simple en String.Format ()

Parece ser diferente para VB sin embargo. He comprobado, y de hecho C # necesidades

string s = DateTime.Now.ToString("MMM d \\'yy 'at' H:mmm");

Si bien las necesidades de VB

Dim s As String = Now.ToString("MMM d \'yy 'at' H:mmm")

¿Por qué C # necesita una doble barra invertida, y VB una sola barra invertida? Esto podría ser un poco de una pregunta tonta a los usuarios de C #, pero al mismo tiempo puedo leer C #, no estoy acostumbrado a escribirlo.

¿Fue útil?

Solución

En C #, literales de cadena puede contener secuencias de escape como \ n para una nueva línea o \ t para una pestaña o \" para una cita. Si no es necesario el escape, se puede prefijar el literal con @ (por ejemplo, :. @"MMM ...") y obtener la misma cadena de un VB

En VB, nunca se le permite escapar, por lo que no hay necesidad de escapar de la barra invertida.

Otros consejos

La razón es que C # admite secuencias de escape dentro de la cadena a través del personaje \. VB no tiene tales mecanismos de escape y por lo tanto el único \ es interpretado como un \.

En C # se puede obtener el mismo comportamiento mediante el uso de cadenas literales

@"MMM d \'yy 'at' H:mmm"

En C # la barra invertida tiene un significado (\ n es de nueva línea \ t pestaña ....). Así backlslahs itselft es un carácter de escape - que tiene que escapar :) O colocar un AT-signo delante de la cadena - esto hace que un "no escapó cadena" (normalmente utilizado para caminos)

En C # \ escapará. Su texto se convertirá en "MMM d \ 'yy 'a' H: mmm". No es necesario para escapar del "carácter de una cadena. Si se va a utilizar "en la cadena, por otro lado, que tendría que escapar de ella para no terminar su cadena 'd de MMM \' yy \" en \ "H: mmm". O también se puede utilizar el "" método de cadena, que se escapará automáticamente los caracteres para usted (no "@ sin embargo). Así se podría escribir @" esto no va a \ n haber dos líneas "

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top