我创建了一个对象并实现了接口
IEnumerable<Options>
。
如果我尝试遍历我的对象,它可以正常工作,但变量不会被转换为 Options
类型而是 object
。public class MyClass : IEnumerable<Options>
{
// I just cut the non-relevant code. The real class is over 500 lines ...
public List<Options> options = new List<Options>();
IEnumerator<Options> IEnumerable<Options>.GetEnumerator()
{
return options.GetEnumerator();
}
public IEnumerator GetEnumerator()
{
return options.GetEnumerator();
}
}
如何循环遍历:
foreach (var option in myClass)
{
// Do something
}
typeof(option)
返回 object
。但由于我实现了通用接口,所以希望将其返回为 Options
。它确实是一个Options
对象,我可以使用(Options)option
进行显式转换,但应该自动转换。
foreach (Options option in myClass)
{
// I want it to be casted automatically when using 'var'
}
public IEnumerator<Options> GetEnumerator(){ return options.GetEnumerator(); }
- Tim Schmelter