2010-11-03 7 views
1

Comment cette concaténation de chaînes a-t-elle lieu? je suis confonds vraiment ce qui se passe pourquoi slash i il et comment les guillemets doubles sont utilisésproblème de concaténation de chaînes

SessionStateItemCollection items = new SessionStateItemCollection(); 

items["LastName"] = "Wilson"; 
items["FirstName"] = "Dan"; 

foreach (string s in items.Keys) 
    Response.Write("items[\"" + s + "\"] = " + items[s].ToString() + "<br />"); 

//here i am looking for explanation please elaborate me on this please 
Response.Write("items[\"" + s + "\"] = " + items[s].ToString() + "<br />"); 

Répondre

1

La barre oblique échappe à la citation. Fondamentalement, il va écrire le nom entre guillemets. Pour exemple, la sortie serait:

items["Wilson"] = Wilson<br /> 

L'échappement se produit pour le caractère directement après la barre oblique inverse \. Donc \" est échappé à ". Le " suivant est l'arrêt de la chaîne et vous ajoutez la variable s qui à son tour est l'élément actuel dans la boucle foreach.

Voici un article sur les caractères d'échappement.

+0

pas clair asseoir quelle citation est échappée s'il vous plaît élaborer un peu o – NoviceToDotNet

+0

J'ai ajouté plus de description et un lien. –

1

La barre oblique inverse échappe à la ". Cela indique au compilateur que vous voulez juste une double-citation littérale, plutôt que de terminer la chaîne littérale.

+0

Ainsi, lorsque vous rencontrez des barres obliques, les premières doubles quotes seront ignorées. Est-ce vrai? – NoviceToDotNet

+0

Cela signifie que le guillemet double sera juste un caractère normal dans la chaîne. –

3

Seul le \" (guillemets doubles après le backslash) est échappé.

Questions connexes