2010-12-02 8 views
3

Possible en double:
What's the @ in front of a string for .NET?en C#, que fait le symbole "@"?

j'ai vu parfois l'exemple de code, aura un symbole "@" et la chaîne. par exemple:

EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); 
    entityBuilder.Provider = "System.Data.SqlServerCe.3.5"; 
    entityBuilder.ProviderConnectionString = providerString; 
    entityBuilder.Metadata = @"res://*/App_Data.data.csdl|res://*/App_Data.data.ssdl|res://*/App_Data.data.msl"; 

Sur la 4e ligne, ce qui est que l'utilisation du « @ »? J'essaie de supprimer cela, cela fonctionne toujours.

+0

un excellent q mais il vaut la peine de vérifier d'abord les explications existantes. –

+0

btw, dans ce cas, il ne change rien, car rien ne doit s'échapper –

+2

Wow. Cela a été fermé dans les 30 secondes. Bon travail Marc :) –

Répondre

3

Un littéral de chaîne tel que @ "c: \ Foo" est appelé un littéral de chaîne verbatim. Cela signifie fondamentalement "n'appliquez aucune interprétation aux caractères jusqu'à ce que le caractère de citation suivant soit atteint". Ainsi, un littéral littéral verbatim peut contenir des barres obliques inverses (sans qu'elles soient doublées) et même des séparateurs de ligne. Pour obtenir une double-citation (") dans un littéral verbatim, vous devez juste le doubler, par exemple @" Mon nom est "" Jon "" "représente la chaîne Mon nom est" Jon ".Vitra littéraux littéraux qui contiennent des séparateurs de ligne contiendra également l'espace blanc au début de la ligne, donc j'ai tendance à ne pas les utiliser dans les cas où l'espace blanc compte.Ils sont très utiles pour inclure XML ou SQL dans votre code source, et une autre utilisation typique (qui n'a pas besoin de séparateurs de ligne) est pour spécifier un chemin du système de fichiers.

Taken from

+0

(alors que les liens externes sont utiles, ils tendent à disparaître de façon imprévisible, ayant un peu de contenu dans le message proprement dit) –

+0

Maintenant je l'ai changé – Kimtho6

1

Il indique au compilateur de ne pas traiter \ comme des séquences d'échappement et de prendre les cordes littéralement.