下面的C#程序做什麼,我希望,這是輸出「第一」,「第二」,「第三」。但是,當我將Main中的foo類型更改爲動態時,會引發一個異常,如下所示:爲什麼將類型更改爲動態會導致我的C#代碼引發異常?
「不能隱式地將類型'MyProgram.Program'轉換爲'System.Collections.IEnumerable'。缺少強制轉換?)」
爲什麼改變類型的動態斷裂這樣的代碼?
謝謝!
using System;
namespace TestForEach
{
class Program
{
private int idx = -1;
public Program GetEnumerator() {
return this;
}
public string Current
{
get {
string[] arr = { "First", "Second", "Third" };
return arr[idx];
}
}
public Boolean MoveNext()
{
return ++idx < 3;
}
static void Main(string[] args)
{
Program foo = new Program();
foreach (var i in foo)
{
System.Console.WriteLine(i);
}
System.Console.ReadKey();
}
}
}
這是沒有必要爲一個類來實現'IEnumerable'爲了一個實例在foreach循環使用。請參閱http://msdn.microsoft.com/en-us/library/dscyy5s0.aspx – drstevens 2011-11-22 19:57:34