Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
374 views
in Technique[技术] by (71.8m points)

c# - Cannot step into a method returning IEnumerable<T>?

I have a method that returns an IEnumerable like this..

public virtual IEnumerable<Page> ToPages(){
  // foreach logic
  yield return pages;

  // more foreach logic
  yield return otherPages;

  // etc
}

The method seems to work ... in a way. But what's really baffling is that I cannot step into it! I place debugger points all around, and the debugger just passes right through them!!!

Does anyone know why this might occur?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The method isn't run until you enumerate into it.

foo.ToPages().ToList() // will enumerate and your breakpoint will be hit.

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...