Gennemse en løsning til strenginterpolering

Fuldført

Følgende kode er en mulig løsning på udfordringen fra det forrige undermodul.

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);

Denne kode er blot "én mulig løsning", fordi meget afhænger af, hvordan du har besluttet at implementere logikken. Så længe du brugte de teknikker, der er dækket i dette modul til at formatere strenge, pad strenge, og så videre, og outputtet matcher udfordringen output, så du gjorde stor!

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  

Hvis du lykkedes, tillykke!

Løsningsoplysninger

Du kan fortsætte dette afsnit for at få en forklaring på, hvordan den givne løsning løser denne udfordring.

  1. Brug et øjeblik på at gennemse løsningskoden.

    Du kan begynde at opdele løsningen og løse først for at skrive hilsen og åbne afsnit til terminalen. Den kode, der følger efter, løser visning af hilsenen Dear Ms. Barros, ved hjælp af strenginterpolering. Du bør nu være bekendt med mønsteret Console.WriteLine($"Your text {yourVariable}");:

    string customerName = "Ms. Barros";
    Console.WriteLine($"Dear {customerName},");
    

    Kodeoutputtet er:

    Dear Ms. Barros,   
    

    Gennemse eksemplet på den komplette løsning igen. I første halvdel af løsningen bruges strenginterpolering til at vise hver del af det første afsnit.

    Seddel

    Sammensat formatering, f.eks Console.WriteLine("Dear {0},", customerName) . er en anden mulig løsning.

  2. I den anden del af løsningen vises sammenligningstabellen ved at oprette en lang streng trinvist ved hjælp af strengsammenkædning med string.Format() sammensat formatering, formatangivelser (procent og valuta) og PadRight().

    Følgende kode opretter den første linje i tabellen med tilføjelser af Console.WriteLine() efter hvert trin i oprettelse af strengen comparisonMessage.

    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);
    

    Følgende eksempeloutput viser, hvordan den første linje i sammenligningstabellen er bygget i tre trin.

    Magic Yield
    Magic Yield         12.75%
    Magic Yield         12.75%    $55,000,000.00
    

Hvis du havde problemer med at fuldføre denne udfordring, skulle du måske gennemse de tidligere enheder, før du fortsætter.