Meninjau solusi untuk interpolasi string

Selesai

Kode berikut adalah salah satu solusi yang mungkin untuk tantangan dari unit sebelumnya.

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

Kode ini hanyalah "satu solusi yang mungkin" karena banyak tergantung pada bagaimana Anda memutuskan untuk menerapkan logika. Selama Anda menggunakan teknik yang tercakup dalam modul ini untuk memformat string, menambah string, dan sebagainya, dan output cocok dengan output tantangan, maka Anda telah melakukan yang baik!

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  

Jika Anda berhasil, selamat!

Detail solusi

Anda dapat melanjutkan bagian ini untuk penjelasan tentang bagaimana solusi yang diberikan menyelesaikan tantangan ini.

  1. Luangkan waktu semenit untuk meninjau kode solusi.

    Anda dapat mulai memecah bagian dari solusi dan mulai menulis salam dan paragraf pembuka di terminal. Kode yang berikut ini menyelesaikan masalah tampilan salam Dear Ms. Barros, dengan menggunakan interpolasi string. Anda sekarang harus terbiasa dengan pola Console.WriteLine($"Your text {yourVariable}");:

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

    Hasil kode adalah:

    Dear Ms. Barros,   
    

    Tinjau sampel solusi lengkap lagi. Paruh pertama solusi menggunakan interpolasi string untuk menampilkan setiap bagian dari paragraf pertama.

    Nota

    Pemformatan komposit seperti Console.WriteLine("Dear {0},", customerName) adalah solusi lain yang mungkin.

  2. Bagian kedua dari solusi menampilkan tabel perbandingan dengan membangun string panjang langkah demi langkah menggunakan perangkaian string, string.Format() dengan pemformatan komposit, penentu format (persen dan mata uang), dan PadRight().

    Kode berikut membangun baris pertama tabel dengan penambahan Console.WriteLine() setelah setiap langkah membangun 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);
    

    Contoh output berikut menunjukkan bagaimana baris pertama tabel perbandingan dibangun dalam tiga langkah.

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

Jika Anda mengalami kesulitan menyelesaikan tantangan ini, mungkin Anda harus meninjau unit sebelumnya sebelum melanjutkan.