2010-03-02 5 views
6

Je parie que c'est une question facile pour vous, mais la recherche SO ou Google avec { ou } dans la chaîne de recherche ne fonctionne pas très bien.
Donc, disons que je veux afficher {Hello World}, comment je fais cela en utilisant string.format(...)?Sortie '{' ou '}' avec string.format (...)

Edit:
ressemble à ceci:

string hello = "Hello World"; 
string.format("{0}", '{' + hello + '}'); 

ferait le travail, mais cela ne me semble pas très élégante. Y a-t-il un moyen d'échapper ces caractères à l'intérieur de la chaîne de format?

+0

Faites défiler la liste, votre question a déjà été répondu. – Rory

+0

patience .. vous obtenez votre upvote et bonne réponse assez tôt –

+0

Désolé, je pensais que vous ne l'aviez pas remarqué parce que l'édition est venu près de 8 minutes après la réponse. – Rory

Répondre

13

Utilisez {{ et }}. Donc, votre exemple serait string.Format("{{Hello World}}");

+0

Cela semble être similaire à la convention printf en C++, en utilisant %% si un% est recherché dans la sortie. Quelle est la raison pour laquelle ils n'ont pas utilisé le caractère d'échappement backslash (qui est utilisé en C++ pour échapper les guillemets, les doubles guillemets, les antislashs, ...)? Juste curieux. – Patrick

+1

@Patrick: Il semble que c'est parce qu'il * déjà * a une utilisation dans ce contexte: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#SpecifierEscape –

+1

@Patrick: Probablement pour induire une confusion de masse et panique. Sérieusement cependant, je ne suis pas sûr, mais vous devriez utiliser plusieurs barres obliques inverses ou cela finirait comme un caractère d'échappement ("\ {" donne une erreur de compilation parce que ce n'est pas un échappement valide, "\\" donne un backslash unique, donc vous aurez besoin de quelque chose comme "\\\\ {" qui est un peu beaucoup ...) – Rory

2

J'ai eu ce même problème il y a deux semaines. Resharper le résout automatiquement. Le mettre comme "{" + mystring + "}" et en utilisant le "use format string" l'a automatiquement converti en string.format ("{{{0}}}", mystring).

+0

belle fonctionnalité ("3 de plus à aller ..") –

0

Vous trouverez peut-être

var hello = "Hello world"; 
var test = string.Format("{0}{1}{2}", "{", hello, "}"); 

plus facile à lire que

var test = string.Format("{{{0}}}", hello);