Bonjour,
Question de gros débutant.
Comment stocker de façon lisible et facile à maintenir une chaîne littérale dans du code C# ?
Je m'explique.
Par exemple, j'ai une chaîne de caractères qui doit contenir ceci :
Actuellement, si je veux stocker ça dans mon programme, c'est la croix et la bannière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6TEXTE MIS EN FORME AVEC RETOURS A LA LIGNE ET TABULATION ET ESPACES Des caractères "spéciaux' /@\ youpi
Et ensuite, à modifier (ajouter une ligne par exemple, refaire l'indentation, etc.) c'est l'horreur totale.
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 string myString = "TEXTE MIS EN FORME\nAVEC RETOURS A LA LIGNE\n\tET TABULATION\n ET ESPACES\nDes caractères \"spéciaux' {1} /@\\ youpi";
Du coup je passe plus de temps à remettre en forme ma chaîne de caractères dans un sens ou dans l'autre qu'à faire la modification réelle.
En PHP par exemple, il y a une instruction (me souvient plus tout à fait, mais grossomodo, de très loin, ça ressemble à ça :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $myString = EOD___ TEXTE MIS EN FORME AVEC RETOURS A LA LIGNE ET TABULATION ET ESPACES Des caractères "spéciaux' /@\ youpi ___EOD;
Ou comme la balise CDATA en XML.
J'ai cherché, mais pas trouvé
Il reste la solution pas vraiment pratique qui consiste à passer par un fichier texte, en ressource ou non. Mais c'est vraiment pas pratique à utiliser, et niveau performances, je suis pas certain que ce soit hyper judicieux...
Et là, franchement, j'en peux plus :
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 string query = string.Format("<?xml version=\"1.0\"?><request><query><tables><table tablename=\"RepUser\" id=\"{0}\"><table tablename=\"Contact\"><table tablename=\"ContactParticipant\"><table tablename=\"Person\"><table tablename=\"Company\"></table></table></table></table></table></tables><fields><field tablename=\"Contact\" fieldname=\"ExternalID\"/><field tablename=\"Contact\" fieldname=\"Location\"/><field tablename=\"Contact\" fieldname=\"ExternalSynchroDate\"/><field tablename=\"Contact\" fieldname=\"Date\"/><field tablename=\"Contact\" fieldname=\"Time\"/><field tablename=\"Contact\" fieldname=\"EndDate\"/><field tablename=\"Contact\" fieldname=\"EndTime\"/><field tablename=\"Contact\" fieldname=\"Subject\"/><field tablename=\"Contact\" fieldname=\"Text\"/><field tablename=\"Contact\" fieldname=\"Private\"/><field tablename=\"Contact\" fieldname=\"Upd\"/><field tablename=\"Contact\" fieldname=\"UpdTime\"/><field tablename=\"Contact\" fieldname=\"Contact\"/><field tablename=\"Person\" fieldname=\"FirstName\"/><field tablename=\"Person\" fieldname=\"LastName\"/><field tablename=\"Person\" fieldname=\"E-mail1\"/><field tablename=\"Person\" fieldname=\"Tel1\"/><field tablename=\"Person\" fieldname=\"Tel2\"/><field tablename=\"Company\" fieldname=\"Company\"/></fields><condition><lop value=\"or\"><lop value=\"and\"><cond tablename=\"Contact\" fieldname=\"Upd\" op=\">=\" value=\"{1}\"/><cond tablename=\"Contact\" fieldname=\"UpdTime\" op=\">=\" value=\"{2}\"/></lop><lop value=\"and\"><cond tablename=\"Contact\" fieldname=\"New\" op=\">=\" value=\"{1}\"/><cond tablename=\"Contact\" fieldname=\"NewTime\" op=\">=\" value=\"{2}\"/></lop></lop></condition></query></request>", user.Id, LastSync.ToString("dd.MM.yyyy"), LastSync.ToString("hh:mm:ss.fff"));
Partager