Revizuirea unei soluții pentru interpolarea șirului
Următorul cod este o soluție posibilă pentru provocarea de la unitatea anterioară.
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);
Acest cod este doar "o soluție posibilă", deoarece o mulțime depinde de modul în care ați decis să implementeze logica. Atâta timp cât ați utilizat tehnicile descrise în acest modul pentru a formata șiruri, șiruri pad și așa mai departe, iar rezultatul corespunde rezultatului provocării, atunci ați făcut excelent!
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
Dacă ați reușit, felicitări!
Detalii soluție
Puteți continua această secțiune pentru o explicație privind modul în care soluția dată rezolvă această provocare.
Citiți un minut pentru a revizui codul soluției.
Puteți începe să scindați soluția și să rezolvați mai întâi pentru scrierea formulei de salut și deschiderea paragrafului pe terminal. Codul care urmează rezolvă afișarea formulei de salut
Dear Ms. Barros,utilizând interpolarea șirului. Acum ar trebui să fiți familiarizat cu modelulConsole.WriteLine($"Your text {yourVariable}");:string customerName = "Ms. Barros"; Console.WriteLine($"Dear {customerName},");Ieșirea codului este:
Dear Ms. Barros,Revizuiți din nou soluția completă eșantion. Prima jumătate a soluției utilizează interpolarea șirului pentru a afișa fiecare parte a primului paragraf.
Notă
Formatare compusă, cum
Console.WriteLine("Dear {0},", customerName)ar fi o altă soluție posibilă.A doua parte a soluției afișează tabelul de comparație prin construirea unui șir lung pas cu pas, utilizând concatenarea șirurilor, cu formatare compusă,
string.Format()specificatorii de formatare (procent și monedă) șiPadRight().Următorul cod construiește prima linie a tabelului cu adăugiri după
Console.WriteLine()fiecare pas al construirii șiruluicomparisonMessage.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);Următorul exemplu de ieșire arată cum este construită prima linie a tabelului de comparație în trei pași.
Magic Yield Magic Yield 12.75% Magic Yield 12.75% $55,000,000.00
Dacă ați avut probleme la finalizarea acestei provocări, poate ar trebui să revizuiți unitățile anterioare înainte de a continua.