2016-11-19 13 views
6

tôi có mã. hàm tạo nên nhập hàm GetItems nhưng khi tôi đặt điểm ngắt, nó đơn giản là không dừng lại.hàm tạo không nhập hàm C#

sự cố là gì?

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

bạn đã đặt điểm dừng ở đâu? – Rahul

+5

Vì sử dụng 'yield' và' IEnumerable'. Đề nghị bạn thử 'var a = GetItems (fILEToolStripMenuItem) .ToList();'. –

Trả lời

11

Khi bạn đang sử dụng yield, nó có nghĩa là thực hiện chậm, vì vậy bạn cần phải liệt kê biến a của bạn, như thế này:

var a = GetItems(fILEToolStripMenuItem).ToList(); 

Bạn cũng có thể sử dụng ToArray(), bất cứ điều gì, bạn chỉ cần liệt kê IEnumerable của bạn.

Các vấn đề liên quan