Просмотр решения для интерполяции строк
В приведенном ниже коде показано возможное решение для задачи из предыдущего урока.
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
Если вам удалось справиться с этой задачей, примите наши поздравления!
Описание решения
Вы можете продолжить этот раздел, чтобы объяснить, как данное решение решает эту проблему.
Чтобы просмотреть код решения, сделайте минуту.
Вы можете начать с разбиения задачи и сначала написать приветствие и введение для абзаца, которое будет отображаться в терминале. Следующий код решает отображение приветствия
Dear Ms. Barros,с помощью интерполяции строк. Теперь вы должны быть знакомы с шаблономConsole.WriteLine($"Your text {yourVariable}");:string customerName = "Ms. Barros"; Console.WriteLine($"Dear {customerName},");Выходные данные кода:
Dear Ms. Barros,Снова просмотрите пример полного решения. Первая половина решения использует интерполяцию строк для отображения каждой части первого абзаца.
Замечание
Составное форматирование, например
Console.WriteLine("Dear {0},", customerName)другое возможное решение.Вторая часть решения отображает таблицу сравнения, создавая длинную строку шаг за шагом с помощью объединения строк и составного форматирования, включая спецификаторы формата (процентные и валютные) и
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
Если у вас возникли проблемы при решении этой задачи, попробуйте снова изучить предыдущие уроки, прежде чем идти дальше.