我有代码。构造函数应该进入 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;
}
}
}
}
最佳答案
当您使用 yield 时,这意味着延迟执行,所以你需要枚举你的变量a
,像这样:
var a = GetItems(fILEToolStripMenuItem).ToList();
您也可以使用 ToArray()
,无论如何,您只需要枚举您的 IEnumerable
。
关于c# - 构造函数不进入函数 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40693295/