Просмотр решения для интерполяции строк

Завершённый

В приведенном ниже коде показано возможное решение для задачи из предыдущего урока.

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

Этот код является просто "одним возможным решением", так как много зависит от того, как вы решили реализовать логику. Если вы использовали методы, описанные в этом модуле, для форматирования и дополнения строк и т. д., а выходные данные соответствуют требуемому, то вы отлично справились!

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  

Если вам удалось справиться с этой задачей, примите наши поздравления!

Описание решения

Вы можете продолжить этот раздел, чтобы объяснить, как данное решение решает эту проблему.

  1. Чтобы просмотреть код решения, сделайте минуту.

    Вы можете начать с разбиения задачи и сначала написать приветствие и введение для абзаца, которое будет отображаться в терминале. Следующий код решает отображение приветствия Dear Ms. Barros, с помощью интерполяции строк. Теперь вы должны быть знакомы с шаблоном Console.WriteLine($"Your text {yourVariable}");:

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

    Выходные данные кода:

    Dear Ms. Barros,   
    

    Снова просмотрите пример полного решения. Первая половина решения использует интерполяцию строк для отображения каждой части первого абзаца.

    Замечание

    Составное форматирование, например Console.WriteLine("Dear {0},", customerName) другое возможное решение.

  2. Вторая часть решения отображает таблицу сравнения, создавая длинную строку шаг за шагом с помощью объединения строк и составного форматирования, включая спецификаторы формата (процентные и валютные) и string.Format().

    Следующий код создает первую строку таблицы, добавляя Console.WriteLine() после каждого этапа построения строки 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);
    

    В следующем примере выходных данных показано, как первая строка таблицы сравнения построена на трех шагах.

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

Если у вас возникли проблемы при решении этой задачи, попробуйте снова изучить предыдущие уроки, прежде чем идти дальше.