C# .net で日付文字列のバックスラッシュを置き換えようとすると、いくつかの問題が発生します。
これまでのところ、私は使用しています:
string.Replace(@"\","-")
しかし、それは交換を行っていません。誰でも助けてもらえますか?
string.Replace
文字列自体を変更するのではなく、新しい文字列を返します。これはおそらく破棄しています。代わりにこれを行います:
myString= myString.Replace(@"\","-");
余談ですが、この種の操作は通常、書式設定された日付文字列を手動で操作するコードで見られます。ほとんどの場合、このようなことよりも、やりたいこと (どれが?) を行うためのより良い方法があります。
変数に値を戻す必要があると彼ら全員が言っているように。
だからそうあるべきだ
val1= val1.Replace(@"\","-");
または
val1= val1.Replace("\\","-");
しかし、それだけでなく..以下のものは機能しません
val1.Replace(@"\","-");
このように使用してください。
oldstring = oldstring.Replace(@"\","-");
String.Replace
戻り値の型を探します。
修正した文字列を返す関数です。古い文字列を単純に変更した場合は、void
戻り値の型がありました。
以下を使用することもできます。
myString = myString.Replace('\\', '-'));
ただし、日付のスラッシュは通常/
、バックスラッシュではなくフォワード スラッシュ\
です。
他の人が示唆しているように、 String.Replace は元の文字列オブジェクトを更新しませんが、代わりに新しい文字列を返します。
myString= myString.Replace(@"\","-");
C# では、基本的に文字列をスレッドセーフにするために、文字列が不変であることを理解することは価値があります。文字列とそれらが不変である理由の詳細については、こことここのリンクを参照してください。