У меня возникает несколько проблем с попыткой заменить обратную косую черту в строке даты на С#.net.
До сих пор я использую:
string.Replace(@"\","-")
но он не сделал замену. Может ли кто-нибудь помочь?
Ответ 1
string.Replace не изменяет сама строка, а возвращает новую строку, которая, скорее всего, вы выбрасываете. Сделайте это вместо:
myString= myString.Replace(@"\","-");
С другой стороны, этот вид операции обычно просматривается в коде, который вручную обманывает с форматированными строками даты. В большинстве случаев есть лучший способ сделать то, что вы хотите (что?), Чем такие вещи.
Ответ 2
поскольку все они говорят, что вам нужно вернуть значение в переменную.
поэтому он должен быть
val1= val1.Replace(@"\","-");
или
val1= val1.Replace("\\","-");
но не только.. ниже один не будет работать
val1.Replace(@"\","-");
Ответ 3
Используйте его таким образом.
oldstring = oldstring.Replace(@"\","-");
Найдите тип возврата String.Replace.
Его функция, которая возвращает скорректированную строку. Если бы он просто изменил старую строку, то он имел бы тип возврата void.
Ответ 4
Вы также можете использовать:
myString = myString.Replace('\\', '-'));
но давая вам знать, косые черты, как правило, пересылаются /, а не обратные слэши \.
Ответ 5
Как было предложено другими, String.Replace не обновляет исходный строковый объект, но вместо этого возвращает новую строку.
myString= myString.Replace(@"\","-");
Стоит вам понять, что строка неизменна в С# в основном, чтобы сделать ее потокобезопасной. Более подробно о строках и о том, почему они неизменяемы, см. Ссылки здесь и здесь