Esaminare 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. Se sono state usate le tecniche descritte in questo modulo per formattare le stringhe, le stringhe di riempimento e così via, e l'output corrisponde all'output richiesto per la verifica, la verifica è stata superata.
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
In questo caso
Dettagli della soluzione
È possibile continuare questa sezione per una spiegazione del modo in cui la soluzione specificata risolve questa sfida.
Soffermarsi qualche istante a esaminare il codice della soluzione.
È possibile iniziare suddividendo la soluzione e risolvere prima di tutto la richiesta di scrivere il messaggio di saluto e il paragrafo di apertura nel terminale. Il codice che segue risolve la visualizzazione del messaggio di saluto
Dear Ms. Barros,
usando l'interpolazione di stringhe. A questo punto si dovrebbe avere una certa familiarità con il modelloConsole.WriteLine($"Your text {yourVariable}");
:string customerName = "Ms. Barros"; Console.WriteLine($"Dear {customerName},");
L'output del codice è:
Dear Ms. Barros,
Esaminare nuovamente la soluzione completa di esempio. La prima metà della soluzione usa l'interpolazione delle stringhe per visualizzare ogni parte del primo paragrafo.
Nota
La formattazione composita, ad esempio
Console.WriteLine("Dear {0},", customerName)
, è un'altra possibile soluzione.La seconda parte della soluzione visualizza la tabella di confronto creando una stringa lunga passo-passo usando la concatenazione di stringhe,
string.Format()
con formattazione composita, identificatori di formato (percentuale e valuta) ePadRight()
.Il codice seguente crea la prima riga della tabella con aggiunte di
Console.WriteLine()
dopo ogni passaggio della creazione 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 creata 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 non si è riusciti a risolvere questa sfida, è consigliabile rivedere le unità precedenti prima di procedere.