2010-07-19 74 views
7

i tiene una simple declaración de código que lee:String.Format salto de línea

Return String.Format("{0} {1} {2}", _var1, _var2, _var3) 

que estoy tratando de conseguir esta cadena con formato de salida de cada var en su propia línea. Soy nuevo en vb.net pero probé una cosa:

"{0}\n {1}\n {2}" 

que no funcionó. ¿alguna ayuda?

Respuesta

16

¿Qué tal esto:

Return String.Format(_ 
    "{1}{0}{2}{0}{3}{0}", _ 
    Environment.NewLine, _ 
    _var1, _ 
    _var2, _ 
    _var3 _ 
) 

esto podría funcionar también, aunque es un poco "complicado":

Return New StringBuilder() _ 
    .AppendLine(_var1.ToString()) _ 
    .AppendLine(_var2.ToString()) _ 
    .AppendLine(_var3.ToString()) _ 
    .ToString() 
+0

me gustaría utilizar el primer ejemplo. Además, no es necesario 'ToString()' cada variable para 'AppendLine()' – Pondidum

+0

@Pondidum: Bueno, 'StringBuilder.AppendLine' toma un argumento' String', siempre que el OP tenga 'Option Strict On' necesitará llamar a 'ToString' a menos que las tres variables ya sean del tipo' String' (que no se indicó). –

+0

Ah, yo estaba buscando en 'Añadir()' No 'AppendLine()' – Pondidum

0

Me gustaría ir con algo como esto:

Return String.Format("{0}{1}{2}",_var1 & vbcrlf, _var2 & vbcrlf, _var3 & vbcrlf) 
+7

todos los que repiten vbcrlf y los concats parecen perder el sentido de string.format – Pondidum

+0

esto realmente no está mal, IMO. tiene sentido para mí, en lugar de tener toneladas de sustituciones para buscar para mantener las sintaxis de alimentación de línea juntas para cada "frase" de avance de línea. – Rachael

2

Yo usaría algo como

String.Format("{1}{0},{2}{0},{3}{0}", vbcrlf, _var1, _var2, var2) 
0

OK So VB es cojo en este sentido. ¿Qué tal esto:

String.Format ("Var1: {0} \ nVar2: {1} \ nVar3: {2}". Reemplazar ("\ n", vbCrLf), var1, var2, var3)

0

Esto también funciona usando XML literal de la cadena de formato

 Dim fmt = _ 
<xml>Var 1: {0} 
Var 2: {1} 
Var 3: {2}</xml> 
     Trace.WriteLine(String.Format(fmt.Value, 1, 2, 3)) 
1
Function sformat([string], ParamArray args()) As String 
    [string] = [string].replace("\n", vbLf) 
    [string] = [string].replace("\r", vbCr) 
    Return String.Format([string], args) 
End Function 

uso como si usara string.format excepto sformat llamada (SuCadena, param1, param2)