My layman's impression was that 'yield return' was largely syntactic sugar around an iterator, rather similar to Java.