Строковый литерал C # не работает. Очень странная обратная косая черта всегда двойная
Я довольно долго пытался понять, что происходит, но яя нигде не нашел ничего такого, что кто-то кроме меня столкнулся с этой проблемой.
Я просто пытаюсь жестко закодировать путь в строку. Легкие вещи. Ну почему то
string fullPathSourceFile = @"c:\SQLSOURCE.txt";
оценивает яc:\\SQLSOURCE.txt
мы перепробовали все, чтобы вычислить его, чтобы убрать двойные кавычки, и это не сработает. Я даже пыталсяReplace(@"\\", @"\")
и это никак не влияет. Кто-нибудь знает, чтопроисходит с моим кодом, который вызовет двойной обратный слеш при оценке одного? Это сводит меня с ума, и эточертовски легко, но вызывает у меня большое разочарование.
затем используйте строковую переменную ниже:
using (StreamReader reader = new StreamReader(fullPathSourceFile))
{
string line;
while ((line = reader.ReadLine()) != null)
{
sqlDBsource = line.ToString();
}
reader.Close();
}
Спасибо всем за их вклад, который помог мне понять, что я делаю неправильно. В Visual Studio (что сбивает с толку), когда вы смотрите на значение строки в отладчике, он добавляет для вас escape-символы, поэтому двойной обратный слеш в окне просмотра или всплывающем окне значения переменной является нормальным и не означает, что на самом деле две обратные косые черты. Когда вы наводите курсор мыши на переменную или просматриваете ее в окне наблюдения, щелкните значок увеличительного стекла с правой стороны всплывающей подсказки / панели, это покажет вам неэкранированную строку, которая будет напечатана на консоли. Другой способ отобразить фактические результаты: Console.WriteLine (the_problem_string); Проблема, с которой я столкнулся с кодом, выходит за рамки поста, но путаница с результатами, которые я видел в Visual Studio, привела меня к убеждению, что строка была источником проблемы, когда она не была 'т.