Mon programme doit traiter une chaîne d'entrée. Mais quand "\ mesg" est envoyé dans Method1, le bloc else est exécuté à la place du bloc if.Sérialisation d'une chaîne avec barre oblique inverse
void Method()
{
string str = "\\Mesg";
str = Method1(str);
Console.WriteLine(str);
}
string Method1(string s)
{
string upadtedString = s;
if (s.Contains(@"\\"))
{
//do nothing
}
else if(s.Contains(@"\"))
{
upadtedString.Replace(@"\",@"\\");
s = upadtedString;
}
return s;
}
Le meilleur exemple est quand "\ 0Mesg" est l'entrée Method1()
. Cela déclenche une exception de sérilaziation XML lorsque j'essaie de désérialiser. Juste pour gérer cela, je veux ajouter une autre barre oblique, "\ 0Mesg", avant de sérialiser la chaîne.
Comment puis-je le faire fonctionner comme prévu?
Veuillez fournir du code qui compile mais ne fait pas ce que vous voulez. –
Ceci: 's.Contains (" \ ")' ne compilera pas. Vous devez échapper le '\\'. – Oded
"\\ Mesg" est la chaîne: "\ Mesg" donc il devrait être dans le bloc else. – Rangoric