我試圖找出爲什麼我的單元測試失敗(下面的第三個斷言):路線插值發出
var date = new DateTime(2017, 1, 1, 1, 0, 0);
var formatted = "{countdown|" + date.ToString("o") + "}";
//Works
Assert.AreEqual(date.ToString("o"), $"{date:o}");
//Works
Assert.AreEqual(formatted, $"{{countdown|{date.ToString("o")}}}");
//This one fails
Assert.AreEqual(formatted, $"{{countdown|{date:o}}}");
AFAIK,這應能正常工作,但現在看來,它不通過格式化正確的參數,它顯示爲代碼只是{countdown|o}
。任何想法爲什麼這是失敗?
它似乎(雖然我討厭說)它是一個編譯器錯誤。 – DavidG
@DavidG:可能是一個編譯器錯誤,或者可能是底層格式化庫中的一個錯誤,但我同意這裏的東西味道不好。至少應該調查。 –
它似乎是關閉關閉插值支架的方式。使用上面的代碼時,外括號關閉插值'{{countdown | ** {** date:o}} **} **',括號之間的空格會導致它計算到內括號'{{countdown | **:{**日期:○**} ** _}}'。 – Equalsk