做法 04

以內插字串取代 string.Format()

推薦這樣寫

string name = "test";
float height = 180;
int age = 20;
string str = $"userName: {name}, age: {age}, height: {height}";

1. 為什麼 Math.PI 不寫 ToString 會造成 box 呢?

當需要調用 ToString() 方法時,如果我們沒有顯式調用,編譯器會嘗試使用 Object.ToString()。但是,為了使用 Object 上的方法,值類型必須先轉換為 Object,這就導致了裝箱。

做法 05

對文化特定字串偏好 FormattableString

推薦使用 FormattableString,不會因為當地時間顯示或者數字的顯示有所差異。double 的小數點會是".";如果再歐洲會是顯示","。

做法 06

避免字串型別 API

使用 nameof 運算子時,任何對於屬性名稱的改變都會正確的反應在用於事件參數的字串中。

public string Name
{
    get { return name; }
    set
    {
        if (value != name)
        {
            name = value;
            PropertyChanged?.Invoke(this,
            new PropertyChangedEventArgs(nameof(Name)));
        }
    }
}