c # .NET et syntaxe sprintf
Comment ce code traduit en C#, précisément comment sprintf
être implémenté en C#?
string output = "The user %s logged in";
string loggedIn = "is";
string loggedOut = "isn't";
if (TheUser.CheckStatus())
{
output = sprintf(output, loggedIn);
}
else
{
output = sprintf(output, loggedOut);
}
return output;
Je m'attends à voir "The user isn't logged in"
si TheUser.CheckStatus()
est false
.
source d'informationauteur Jimmyt1988
Vous devez vous connecter pour publier un commentaire.
Découvrez chaîne de caractères.Format et voici une version de votre code à l'aide de:
Ou plus simplement: (à l'aide d'une expression ternaire)
L'ensemble de la
printf
famille de fonctions dans C est remplacé par Chaîne de caractères.Format. De la même interface est également exposée, par exemple, dansConsole.WriteLine()
.Avec C# 6, vous pouvez utiliser le formattable chaîne:
La
{loggedIn}
à l'intérieur de la chaîne est le nom de la variable que vous avez défini.Aussi, vous avez intellisense les accolades de choisir le nom de la variable.
Si vous voulez coller avec %s,%d....
Vous pouvez maintenant faire
chaîne de caractères.Format à la rescousse
Voir aussi cette article fondamental sur mise en forme des composites
EDIT: plus courte
Anirudha déjà écrits solution, mais ne peut pas ajouter de commentaire, donc l'affichage de réponse. Il a besoin d'être
int i=-1;
ou elle fera exception à la règle.