我非常努力地不让 Visual Studio 允许我在没有真正了解发生了什么的情况下修复代码。但在这里它帮助我解决了一个问题,我想确保在继续之前我了解发生了什么。
阅读文档让我觉得我正在传递一个方法作为参数?为什么在将它作为参数传递时,我必须在 exposureIterator() 的末尾使用 () 而不是仅使用 exposureIterator(下面的第一个 Bar 方法是正确的)?我觉得我一定是有一个史诗般的大脑放屁,或者错过了一些非常重要的东西。真希望是前者。。。
谢谢您的帮助 :)
public void Foo (Ienumerable iterator)
{
...
}
public static System.Collections.IEnumerable exposureIterator()
{
for (int i = 20; i < 55; i += 5)
{
yield return i.ToString();
}
}
public void Bar()
{
Foo(exposureIterator());
}
VS
public void Bar()
{
Foo(exposureIterator);
}
编辑:刚刚意识到。System.Collections.IEnumerable 只是一个返回类型,它被这样引用让我感到困惑。呼噜呼噜。再次感谢大家的澄清:)