Passer en revue une solution pour l’interpolation de chaîne
Le code suivant est une solution possible pour le défi de l’unité précédente.
string customerName = "Ms. Barros";
string currentProduct = "Magic Yield";
int currentShares = 2975000;
decimal currentReturn = 0.1275m;
decimal currentProfit = 55000000.0m;
string newProduct = "Glorious Future";
decimal newReturn = 0.13125m;
decimal newProfit = 63000000.0m;
Console.WriteLine($"Dear {customerName},");
Console.WriteLine($"As a customer of our {currentProduct} offering we are excited to tell you about a new financial product that would dramatically increase your return.\n");
Console.WriteLine($"Currently, you own {currentShares:N} shares at a return of {currentReturn:P}.\n");
Console.WriteLine($"Our new product, {newProduct} offers a return of {newReturn:P}. Given your current volume, your potential profit would be {newProfit:C}.\n");
Console.WriteLine("Here's a quick comparison:\n");
string comparisonMessage = "";
comparisonMessage = currentProduct.PadRight(20);
comparisonMessage += String.Format("{0:P}", currentReturn).PadRight(10);
comparisonMessage += String.Format("{0:C}", currentProfit).PadRight(20);
comparisonMessage += "\n";
comparisonMessage += newProduct.PadRight(20);
comparisonMessage += String.Format("{0:P}", newReturn).PadRight(10);
comparisonMessage += String.Format("{0:C}", newProfit).PadRight(20);
Console.WriteLine(comparisonMessage);
Ce code est simplement « une solution possible », car cela dépend beaucoup de la façon dont vous avez décidé d’implémenter la logique. Tant que vous avez utilisé les techniques couvertes dans ce module pour mettre en forme des chaînes, remplir les chaînes, etc., et que la sortie correspond à la sortie du défi, alors vous avez réussi !
Dear Ms. Barros,
As a customer of our Magic Yield offering we are excited to tell you about a new financial product that would dramatically increase your return.
Currently, you own 2,975,000.00 shares at a return of 12.75%.
Our new product, Glorious Future offers a return of 13.13%. Given your current volume, your potential profit would be $63,000,000.00.
Here's a quick comparison:
Magic Yield 12.75% $55,000,000.00
Glorious Future 13.13% $63,000,000.00
Si vous avez réussi, félicitations !
Détails de la solution
Vous pouvez continuer cette section pour obtenir une explication sur la façon dont la solution donnée résout ce défi.
Prenez une minute pour passer en revue le code de la solution.
Vous pouvez commencer par décomposer la solution et résoudre d'abord l'écriture du message d’accueil et du paragraphe d'ouverture dans le terminal. Le code suivant résout l’affichage du message d’accueil
Dear Ms. Barros,à l’aide de l’interpolation de chaîne. Vous devez maintenant être familiarisé avec le modèleConsole.WriteLine($"Your text {yourVariable}");:string customerName = "Ms. Barros"; Console.WriteLine($"Dear {customerName},");La sortie du code est la suivante :
Dear Ms. Barros,Examinez à nouveau l’exemple de solution complète. La première moitié de la solution utilise l’interpolation de chaîne pour afficher chaque partie du premier paragraphe.
Remarque
La mise en forme composite comme
Console.WriteLine("Dear {0},", customerName)est une autre solution possible.La deuxième partie de la solution affiche le tableau de comparaison en créant une longue chaîne étape par étape à l’aide de la concaténation de chaînes,
string.Format()avec la mise en forme composite, les spécificateurs de format (pourcentage et devise) etPadRight().Le code suivant génère la première ligne du tableau avec des ajouts de
Console.WriteLine()après chaque étape de la construction de la chaînecomparisonMessage.string currentProduct = "Magic Yield"; int currentShares = 2975000; decimal currentReturn = 0.1275m; decimal currentProfit = 55000000.0m; string comparisonMessage = ""; comparisonMessage = currentProduct.PadRight(20); Console.WriteLine(comparisonMessage); comparisonMessage += String.Format("{0:P}", currentReturn).PadRight(10); Console.WriteLine(comparisonMessage); comparisonMessage += String.Format("{0:C}", currentProfit).PadRight(20); Console.WriteLine(comparisonMessage);L’exemple de sortie suivant montre comment la première ligne de la table de comparaison est générée en trois étapes.
Magic Yield Magic Yield 12.75% Magic Yield 12.75% $55,000,000.00
Si vous avez rencontré des difficultés pour relever ce défi, vous devriez peut-être passer en revue les unités précédentes avant de continuer.