Следующая программа на C # делает то, что я ожидаю: выводить «First», «Second», «Third».Однако, когда я изменяю тип foo в Main на динамический, возникает исключение, которое говорит:
"Не удается неявно преобразовать тип« 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();
}
}
}