-3
votes

Y a-t-il un moyen d'alterner des citations simples et doubles en C # comme vous pouvez en JavaScript?

en JavaScript, je peux écrire xxx

en d'autres termes, si je veux une double citation dans la chaîne, je peux déclarer la chaîne en utilisant des guillemets simples. Si je veux une seule citation dans la chaîne, je peux déclarer la chaîne en utilisant des guillemets doubles. C'est super pratique. Quelqu'un a-t-il trouvé un moyen de faire quelque chose de similaire dans C #?

Les citations simples sont faciles, c # travaille déjà avec des guillemets simples d'intégration. Quant aux devis doubles, il semble y avoir 2 options communes.

  1. Utilisez le caractère d'échappement de barre oblique inverse XXX

  2. Utilisez des guillemets simples et remplacez-les avec des guillemets doubles XXX

    Je peux vivre avec option 2, mais mieux c'est mieux.


5 commentaires

Non, toutes les cordes en C # utilisent des guillemets doubles. Cela fait partie de la spécification de la langue.


Voir docs.microsoft.com/en-us/dotnet / Csharp / Guide de programmation / ... - Les citations simples désignent caractères , vous devez donc échapper à des devis doubles dans des littéraux à chaîne.


Var S = @ "Il a dit" "Bonjour" "à moi" est la chose la plus proche que vous arrivez à la commodité qui n'implique pas \ . Si vous voulez une réponse flippante, alors techniquement var s = $ "Il a dit {'" "} hello {" ""} à moi " utilise des guillemets simples pour obtenir une double citation ...


Je suis confus - pourquoi ne pas l'essayer et savoir s'il compile plutôt que de la publier ici? (Note latérale: Ça ne le fait pas).


C # ayant un type de caractères pendant que JavaScript n'a que des cordes est la principale raison pour laquelle cette syntaxe ne peut pas fonctionner, incidemment. En C #, '\ u005c' est un seul caractère, qui est d'un type distinct qu'une chaîne à caractère unique. Présentation des exceptions dans lesquelles les constantes sont parfois analysées comme des cordes et parfois analysées que des personnages basés sur ce qui leur permettrait de ne pas simplifier les choses, bien que la valeur d'avoir des constantes de caractère soit discutable - mais c'est un agent de maintien de C.


4 Réponses :


1
votes

Non, il n'y a aucun moyen.

guillemets simples ' sont char délimiteur de variable

Double citations " est chaîne Délimiteur de variable

vérifier le Guide de programmation de chaîne MS Pour plus d'informations.


0 commentaires

5
votes

JavaScript et C # sont basés sur c.

in c ' est utilisé pour délimiter des caractères et " est utilisé pour délimiter des chaînes.

Dans JavaScript, il n'y a pas de type de caractère, donc si vous souhaitez un personnage, vous utilisez une chaîne de caractères unique. En tant que tel, il n'a besoin que " mais de nombreuses personnes utilisées dans des langues de style C ont été utilisées pour utiliser ' et préféré que pour de telles chaînes de caractères utilisées pour des caractères. Cela a été modifié bientôt aux personnes développant d'autres styles, d'autant plus que les règles de l'échappement le rendraient pratiques exactement comme vous dites.

C # a un type de caractère, ainsi qu'un type de chaîne, il est donc maintenu à la syntaxe C à cet égard.

La fonctionnalité de la syntaxe JavaScript est apparue en raison d'une caractéristique de son système de frappe qui n'est pas assorti par C #, ainsi que leur historique partagé de la syntaxe d'emprunt de C. Cela ne fonctionnerait pas dans C # si les concepteurs l'avaient voulu, Sans compliquer massivement la distinction entre chaîne et char littéraux.


0 commentaires

0
votes

J'ai décidé d'utiliser des citations simples et de les remplacer par des guillemets doubles.

    var text3 = @"{'children':[{'domid':'sbsmStatusFilter','datatitle':'SBS Status','dataicon':'img/appicons/rsm4-64x64.png'},{'domid':'sbsMonitoringFilters','datatitle':'Monitoring','dataicon':'img/appicons/monitoring64x64.png'}]}";
    text3 = text3.Replace("'", "\"");


1 commentaires

Cette tâche aurait le plus difficile pour que quelqu'un c # soit lu pour lire cependant.



1
votes

Vous pouvez définir votre méthode d'extension sur la chaîne à peu d'accélération de votre travail et réduire la chance de mal partager quelque chose.

var s = @"he said ""Hello"" to me");


1 commentaires

J'aime l'idée de la fonction. Cela pourrait garder le tout sur une ligne. Quant aux doubles citations doubles, je trouve qu'il est vraiment difficile de lire lorsque le texte devient complexe.