的的ToString考慮以下代碼片段:奇法的行爲 - 一個功能
class Program {
static void Main(string[] args) {
Console.WriteLine(Test().ToString());
}
static IEnumerable<char> Test() {
foreach (var ch in "test")
yield return ch;
}
static IEnumerable<char> TestOk() {
return "test";
}
}
Test().ToString()
回報 「ConsoleApplication1.Program + d__0」,而不是預期的 「試驗」。
Test()
方法甚至沒有執行 - 只是返回它的名字!第二種方法TestOk()
工作得很好。
這是怎麼回事?
你確定你沒有做Test.ToString()而不是Test()。ToString()?這應該打印「IEnumerable」而不是它打印的內容。 – 2010-08-14 14:31:23
@Jouke - 它需要30秒來嘗試並親自體驗 - 輸出完全符合規定。 – Justin 2010-08-14 14:37:43