我有代码。构造函数应该输入GetItems
函数,但是当我放置断点时,它根本就不会停止。
问题是什么?
namespace Storehouse {
public partial class MainForm : Form {
public MainForm() {
InitializeComponent();
var a = GetItems(fILEToolStripMenuItem);
}
public IEnumerable<ToolStripMenuItem> GetItems(ToolStripMenuItem item) {
foreach (ToolStripMenuItem dropDownItem in item.DropDownItems) {
if (dropDownItem.HasDropDownItems) {
foreach (ToolStripMenuItem subItem in GetItems(dropDownItem)) {
yield return subItem;
}
yield return dropDownItem;
}
}
}
}
答案 0 :(得分:11)
当您使用yield时,这意味着延期执行,因此您需要枚举变量a
,如下所示:
var a = GetItems(fILEToolStripMenuItem).ToList();
您也可以使用ToArray()
,无论如何,您只需要枚举IEnumerable
。