Een oplossing voor tekenreeksinterpolatie controleren

Voltooid

De volgende code is één mogelijke oplossing voor de uitdaging uit de vorige les.

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

Deze code is slechts één mogelijke oplossing, omdat veel afhankelijk is van hoe u de logica hebt geïmplementeerd. Zolang u de technieken die in deze module worden behandeld hebt gebruikt om tekenreeksen te formatteren, tekenreeksen op te vullen, enzovoort, en de uitvoer overeenkomt met het resultaat van de uitdaging, dan hebt u het geweldig gedaan.

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  

Is het gelukt? Gefeliciteerd!

Details oplossing

U kunt deze sectie voortzetten voor een uitleg over hoe de gegeven oplossing deze uitdaging oplost.

  1. Neem even de tijd om de oplossingscode te bekijken.

    U kunt beginnen met het opdelen van de oplossing en eerst beginnen met het schrijven van de begroeting en de openingsalinea naar de terminal. De volgende code lost het weergeven van de begroeting Dear Ms. Barros, op met behulp van tekenreeksinterpolatie. U moet nu bekend zijn met het patroon Console.WriteLine($"Your text {yourVariable}");:

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

    De code-uitvoer is:

    Dear Ms. Barros,   
    

    Bekijk de volledige voorbeeldoplossing opnieuw. In de eerste helft van de oplossing wordt tekenreeksinterpolatie gebruikt om elk deel van de eerste alinea weer te geven.

    Opmerking

    Samengestelde opmaak, zoals Console.WriteLine("Dear {0},", customerName), is een andere mogelijke oplossing.

  2. Het tweede deel van de oplossing geeft de vergelijkingstabel weer door stap voor stap een lange tekenreeks te maken met behulp van tekenreekssamenvoeging, string.Format() met samengestelde opmaak, notatieaanduidingen (percentage en valuta) en PadRight().

    De volgende code bouwt de eerste regel van de tabel met toevoegingen van Console.WriteLine() na elke stap van het bouwen van de string 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);
    

    In de volgende voorbeelduitvoer ziet u hoe de eerste regel van de vergelijkingstabel in drie stappen is gebouwd.

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

Als u problemen ondervindt bij het voltooien van dit vraagstuk, moet u mogelijk de vorige delen opnieuw bekijken voordat u doorgaat.