Invalid Code public class Iterator { public bool next () { return true; } public G get (int arg) { return (G)null; } } public class Test { public Iterator iterator () { return new Iterator (); } } void main () { Test test = null; foreach (var t in test) { } }