Столкнулся с такой странностью:
почему-то $"\r\n" == "\r\n\r\n"
Т.е. когда я вставляю в текст $"$var1\r\n$var2" Вылезает "val1\r\n\r\nval2"
Почему?
Здравствуйте, FDSC, Вы писали:
FDS>Столкнулся с такой странностью:
FDS>почему-то $"\r\n" == "\r\n\r\n"
FDS>Т.е. когда я вставляю в текст $"$var1\r\n$var2" Вылезает "val1\r\n\r\nval2"
FDS>Почему?
Хм. Баг, в макросе. Исправим.
Здравствуйте, FDSC, Вы писали:
FDS>Столкнулся с такой странностью:
FDS>почему-то $"\r\n" == "\r\n\r\n"
FDS>Т.е. когда я вставляю в текст $"$var1\r\n$var2" Вылезает "val1\r\n\r\nval2"
FDS>Почему?
Потому что при анализе строки анализируется ее исходное представление (чтобы местоположения совпадали). А в коде анализа последовательности \r\n это не учитывается.
По уму этот код нужно просто переписать с использованием PegGrammar. Но жалко тратить время на повторную работу.
Так что пока поправлю старый код.
Здравствуйте, FDSC, Вы писали:
FDS>Столкнулся с такой странностью:
FDS>почему-то $"\r\n" == "\r\n\r\n"
FDS>Т.е. когда я вставляю в текст $"$var1\r\n$var2" Вылезает "val1\r\n\r\nval2"
FDS>Почему?
Если приходится использовать версию компилятора где данный баг еще не поправлен, то воркэраунд очень простой — просто используйте один \n. Он все равно в итоге превратится в \r\n под Windows, так как любой вариант конца строки (\r\n, \r или \n) все равно заменяется на Environment.NewLine.