Rever uma solução para interpolação de cadeias de caracteres
O seguinte código é uma solução possível para o desafio da unidade anterior.
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);
Este código é apenas "uma solução possível" porque muito depende de como você decidiu implementar a lógica. Contanto que tenha utilizado as técnicas abordadas neste módulo para formatar strings, preencher strings e assim por diante, e a saída corresponda à saída do desafio, então você fez um ótimo trabalho!
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
Se foi bem-sucedido, parabéns!
Detalhes da solução
Você pode continuar esta seção para obter uma explicação sobre como a solução dada resolve esse desafio.
Reserve um minuto para revisar o código da solução.
Você pode começar a detalhar a solução e, primeiro, escrever a saudação e o parágrafo de abertura no terminal. O código a seguir resolve a exibição da saudação
Dear Ms. Barros,usando interpolação de cadeia de caracteres. Agora você deve estar familiarizado com o padrãoConsole.WriteLine($"Your text {yourVariable}");:string customerName = "Ms. Barros"; Console.WriteLine($"Dear {customerName},");A saída do código é:
Dear Ms. Barros,Analise a solução completa de exemplo novamente. A primeira metade da solução usa interpolação de cadeia de caracteres para exibir cada parte do primeiro parágrafo.
Observação
Formatação composta como
Console.WriteLine("Dear {0},", customerName)é outra solução possível.A segunda parte da solução exibe a tabela de comparação construindo uma longa cadeia de caracteres passo a passo usando concatenação de cadeia de caracteres,
string.Format()com formatação composta, especificadores de formato (porcentagem e moeda) ePadRight().O código a seguir constrói a primeira linha da tabela com adições de
Console.WriteLine()após cada etapa de construção da cadeia de caracterescomparisonMessage.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);A saída de exemplo a seguir mostra como a primeira linha da tabela de comparação é criada em três etapas.
Magic Yield Magic Yield 12.75% Magic Yield 12.75% $55,000,000.00
Se você teve problemas para completar este desafio, talvez você deva rever as unidades anteriores antes de continuar.