Delineare una soluzione per l'interpolazione di stringhe
Il codice seguente costituisce una possibile soluzione alla sfida presentata nell'unità precedente.
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);
Questo codice rappresenta semplicemente "una possibile soluzione", perché molto dipende dal modo in cui si è deciso di implementare la logica. Finché in questo modulo sono state usate le tecniche descritte in questo modulo per formattare stringhe, stringhe di riquadri e così via, e l'output corrisponde all'output della sfida, quindi si è fatto molto bene.
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
Se ci sei riuscito, congratulazioni!
Dettagli della soluzione
È possibile continuare questa sezione per una spiegazione su come la soluzione specificata risolve questa sfida.
Esaminare il codice della soluzione.
È possibile iniziare a suddividere la soluzione e risolvere prima di tutto per scrivere il messaggio di saluto e aprire il paragrafo al terminale. Il codice che segue risolve la visualizzazione del messaggio di saluto
Dear Ms. Barros,usando l'interpolazione di stringhe. A questo ora si avrà familiarità con il modelloConsole.WriteLine($"Your text {yourVariable}");:string customerName = "Ms. Barros"; Console.WriteLine($"Dear {customerName},");L'output del codice è:
Dear Ms. Barros,Esaminare di nuovo la soluzione completa di esempio. La prima metà della soluzione usa l'interpolazione di stringhe per visualizzare ogni parte del primo paragrafo.
Annotazioni
La formattazione composita, ad esempio
Console.WriteLine("Dear {0},", customerName), è un'altra possibile soluzione.Nella seconda parte della soluzione viene visualizzata la tabella di confronto creando un passaggio di stringa lungo per passaggio usando la concatenazione di stringhe,
string.Format()con formattazione composita, identificatori di formato (percentuale e valuta) ePadRight().Il codice seguente compila la prima riga della tabella con aggiunte di
Console.WriteLine()dopo ogni passaggio della compilazione della stringacomparisonMessage.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'output di esempio seguente mostra come viene compilata la prima riga della tabella di confronto in tre passaggi.
Magic Yield Magic Yield 12.75% Magic Yield 12.75% $55,000,000.00
Se si verificano problemi durante il completamento di questa sfida, è consigliabile esaminare le unità precedenti prima di continuare.