2010-07-19 19 views
7

Ich habe eine einfache Erklärung des Codes, der lautet:String.Format Zeilenumbruch

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

Ich versuche, dieses formatierten String zur Ausgabe auf seine eigene Linie jede var zu bekommen. Ich bin neu bei vb.net, aber ich habe eine Sache versucht:

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

das hat nicht funktioniert. irgendeine Hilfe?

Antwort

16

Wie dies etwa:

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

Auch dies funktionieren könnte, obwohl es ein bisschen "heikler" ist:

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

ich würde verwenden Ihr erstes Beispiel unter Verwendung von xML verwenden würden. Außerdem müssen Sie nicht 'ToString()' jede Variable für 'AppendLine()' – Pondidum

+0

@Pondidum: Nun, 'StringBuilder.AppendLine' nimmt ein' String' Argument, so lange das OP 'Option Strict On' hat Er muss 'ToString' aufrufen, es sei denn, die drei Variablen sind bereits vom Typ' String' (was nicht angezeigt wurde). –

+0

Ah, ich sah 'Append()' nicht 'AppendLine()' – Pondidum

0

ich mit so etwas wie dies gehen würde:

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

all diese wiederholten vbcrlf und concats scheinen den Punkt von string.format zu verpassen – Pondidum

+0

das ist wirklich nicht schlecht, IMO. Es macht für mich Sinn, anstatt Tonnen von Substitutionen zu haben, um die Zeilenvorschubsyntaxen für jede Zeilenvorschub "Phrase" zusammen zu halten. – Rachael

2

Ich würde etwas wie

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

OK Also VB ist in dieser Hinsicht lahm. Wie dazu:

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

0

Dies funktioniert auch wörtlichen für den Format-String

 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 

Verwendung wie Sie string.format außer Anruf sformat (Yourstring, param1, param2)