Si nous pouvons créer un stockage du temp_data d'une chaîne dans une variable et utilisez l'interpolation sur elle? Si leur solution possible est disponible autre que string.format () code> et
string.replace () code> p> p>
4 Réponses :
Si vous souhaitez stocker le message en tant que ressource externe, vous devrez utiliser String.Format plutôt que sur l'interpolation de chaîne, les chaînes interpolées doivent exister dans leur intégralité au moment de la compilation en tant que littéraux à chaîne.
Vous aurez également besoin de Assurez-vous que le nombre de variables contenues dans le message correspondez à ceux de la chaîne de code de code.Format, sinon elle ne transposera pas correctement. p>
Par exemple, il utilise un fichier de ressources; P>
var message = string.Format(Strings.ErrorMessage, value1, value2);
@LEOGICIEL NO, car vous ne pouvez pas utiliser un message externe au code (fichier dB / ressources) comme expliqué dans ma réponse.
Vous avez raison, j'ai définitivement mal compris ce cas d'utilisation mal expliquée. String.Format est alors la bonne solution, +1 kudos.
Vous pouvez utiliser comme celui-ci
double speedOfLight = 299792.458; FormattableString message = $"The speed of light is {speedOfLight:N3} km/s."; System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("nl-NL"); string messageInCurrentCulture = message.ToString(); var specificCulture = System.Globalization.CultureInfo.GetCultureInfo("en-IN"); string messageInSpecificCulture = message.ToString(specificCulture); string messageInInvariantCulture = FormattableString.Invariant(message); Console.WriteLine($"{System.Globalization.CultureInfo.CurrentCulture,-10} {messageInCurrentCulture}"); Console.WriteLine($"{specificCulture,-10} {messageInSpecificCulture}"); Console.WriteLine($"{"Invariant",-10} {messageInInvariantCulture}");
Vous pouvez utiliser $ - Interpolation de chaîne (référence C #) code>
https://docs.microsoft.com/fr- US / DotNet / Csharp / Langue-Référence / Jetons / interpolés P>
Utilisation C # 6, vous pouvez faire exactement ce que vous avez écrit, sans la faute de frappe:
var name = "John"; var temp_data = $"Hi {name}"; var result_data = temp_data; Console.log(result_data);
Ne répond pas à la question, le message (TEMP_DATA) doit provenir d'une base de données / ressource externe et de la création d'une autre chaîne (résultat_data)
Où lisez-vous quelque chose à propos de la base de données / de la ressource externe ?? Créer une autre chaîne est uniquement de conserver l'exemple de la question ......
Voir les commentaires ci-dessous Question
J'ajouterais également que votre exemple n'utilise pas d'interpolation de chaîne de toute façon, la valeur de résultat_data est "hi {nom")
N'hésitez ensuite pas à poster un exemple de travail de chargement du message d'une ressource externe "et" à l'aide d'une interpolation de chaîne
Droit, corrigé la faute de frappe
Que voulez-vous dire "utiliser l'interpolation sur elle"?
Pas totalement sûr de ce que tu veux dire, mais je pense que tu veux ceci: $ "hi {nom}"
Du
var résultat_data = temp_data.replace ("{nom}", nom); code>?
Parce que pour moi, le temp_data obtiendra des données de DB
L'interpolation est Compilation Time i> Syntaxtic Sugar pour un
String.Format régulier.Format CODE>. Vous devrez utiliser cela (ou un autre code de modèles).
Utilisez
stringbuilder code> si vous ne souhaitez pas utiliser
string.format code> et
string.replace code>
@Afnanahmad ok merci
Ou utilisez l'interpolation C # 6!
C'est: $ "hi {nom}"