2011-08-30 15 views
6

Próbuję dołączyć do mojego ciągu cudzysłowy, aby dodać je do pola tekstowego, używam tego kodu.Dołącz cudzysłowy wewnątrz napisu?

t.AppendText("Dim Choice" & count + " As String = " + "Your New Name is: & pt1 + "" & pt2 +" + vbNewLine) 

ale to nie robi praca, chcę go do wyjścia tak:

Dim Choice As String = "Your New Name is: NAME_HERE" 

Odpowiedz

13

trzeba uciec cytaty. W VB.NET, należy użyć cudzysłów - "":

t.AppendText("Dim Choice" + count.ToString() + " As String = ""Your New Name is: " + pt1 + " " + pt2 + """" + vbNewLine) 

Byłoby to wydrukować jako:

Dim Choice1 As String = "Your New Name is: NAME HERE" 

Zakładając count = 1 (Integer), pt1 = "Nazwa" oraz PT2 = „tu ".

Jeśli count nie jest liczbą całkowitą, można zrzucić wywołanie ToString().

W języku C#, można uciec "za pomocą \, tak:

t.AppendText("string Choice" + count.ToString() + " = \"Your New Name is: " + pt1 + " " + pt2 + "\"\n"); 

Które wydrukować jako:

string Choice1 = "Your new Name is: NAME HERE"; 
+0

W ostatnim kawałku kodu „” „+ vbNewLine) posiada i błąd:” String stałe musi kończyć z podwójnymi cytatami " –

+0

Zaktualizowałem koniec kodu, aby użyć 4" - tj. "" "". Początkowo wprowadziłem trzy przypadkowo. Przepraszam za zamieszanie. – Tim

0

Trzeba im uciec, jednak nie można dynamicznie wygenerować zmienną nazwiska jak próbujesz tutaj:

"Dim Choice" & count + " As String = " 

to będzie tylko ciąg

.
+0

Nie sądzę, że OP próbuje dynamicznie generować nazwy zmiennych, ponieważ mówi, że próbuje umieścić ciąg w TextBox. – Tim

+0

Ach, w porządku, wystarczy –

0

Można użyć Chr Function z quotes ASCII Code: 34 mieć wynik jak ten:

t.Append(Dim Choice As String = " & Chr(34) & "Your New Name is: NAME_HERE" & Chr(34)) 
+2

Nie używaj tutaj 'Chr', po prostu sprawia, że ​​jest mniej czytelny. Nikt nie użył '(char) 34' w C#, użyłbyś' \ "'. Tak samo jest w VB. –

8

Jak powiedział Tim, wystarczy zastąpić każde wystąpienie " wewnątrz napisu z "".

Ponadto, należy String.Format aby kod był bardziej czytelny:

t.AppendText(_ 
    String.Format(_ 
     "Dim Choice{0} As String = ""Your New Name is: {1} {2}""{3}", _ 
     count, pt1, pt2, vbNewLine) 

W zależności od rodzaju telefonu t, nie może być nawet to metoda, która obsługuje ciągi formatu bezpośrednio, czyli być może można jeszcze uprościć powyższe do:

t.AppendText(_ 
    "Dim Choice{0} As String = ""Your New Name is: {1} {2}""{3}", _ 
    count, pt1, pt2, vbNewLine) 
+1

+1 dla String.Format. Jestem wielkim fanem czytelności kodu (mimo że trzymam zapominając o prostych rzeczach, takich jak String.Format ... może go zdejmę, kiedy dorosnę :)). – Tim

0

Mimo ucieczki ciąg jest poprawne sposób robienia rzeczy nie zawsze jest najłatwiejszy do odczytania. Rozważyć próbuje stworzyć następujący ciąg:

Blank "" Full "Full" and another Blank "" 

Aby to zrobić należy wykonać następujące czynności ucieczki:

"Blank """" Full ""Full"" and another Blank """"" 

Ale jeśli używasz String.Format z Chr(34) można wykonać następujące czynności:

String.Format("Blank {0}{0} Full {0}Full{0} and another Blank {0}{0}", Chr(34)) 

Ta opcja jest łatwiejsza do odczytania.

0

W VB .Net można to zrobić:

Zakładając count = 1 (Integer), pt1 = "NAME" and pt2 = "HERE".

t.AppendText("Dim Choice" & count.Tostring() + " As String ="+ CHR(34) + "Your New Name is: " & pt1 + "_" & pt2 +CHR(34) + vbNewLine) 

Wyjście będzie Dim Wybór As String = „Twoja Nowa nazwa brzmi: NAME_HERE”

Powiązane problemy