C # verbatim ciąg literału nie działa. Bardzo dziwny ukośnik zawsze się podwaja
Od dłuższego czasu próbowałem dowiedzieć się, co się dzieje, ale nie znalazłem niczego, w co ktoś poza mną nie wpadł na ten problem.
Próbuję po prostu zakodować ścieżkę do łańcucha. Łatwe rzeczy. Z jakiegoś powodu
string fullPathSourceFile = @"c:\SQLSOURCE.txt";
ocenia doc:\\SQLSOURCE.txt
Próbowałem wszystkiego, aby ocenić go na pojedynczy ukośnik odwrotny, usunąć podwójne cudzysłowy i nie będzie działać. Próbowałem nawetReplace(@"\\", @"\")
i to nie ma wpływu. Ktoś ma jakiś pomysł, co dzieje się z moim kodem, który wymusiłby podwójny ukośnik odwrotny, gdy jeden powinien być oceniany? To doprowadza mnie do szału i jest tak cholernie łatwe, ale powoduje wiele frustracji.
Następnie używam poniższej zmiennej łańcuchowej:
using (StreamReader reader = new StreamReader(fullPathSourceFile))
{
string line;
while ((line = reader.ReadLine()) != null)
{
sqlDBsource = line.ToString();
}
reader.Close();
}
Dziękujemy wszystkim za ich wkład, który pomógł mi zrozumieć, co robię źle. W Visual Studio (co jest mylące), gdy patrzysz na wartość ciągu w debuggerze, umieszcza on dla ciebie ucieczki, więc podwójny ukośnik w oknie podglądu lub wyskakującym okienku wartości zmiennej jest normalny i nie oznacza, że faktycznie dwa odwrotne ukośniki. Po najechaniu myszą na zmienną lub oglądaniu jej w oknie zegarka, kliknij ikonę szkła powiększającego po prawej stronie podpowiedzi / panelu, spowoduje to wyświetlenie na niej konsoli bez zmiany. Innym sposobem wyświetlenia rzeczywistych wyników jest: Console.WriteLine (the_problem_string); Problem, który miałem z kodem, jest poza zakresem postu, ale pomieszanie wyników, które widziałem z Visual Studio, doprowadziło mnie do przekonania, że ciąg był źródłem problemu, gdy nie był.