Нет, это не так.Созданный IEnumerable<T>
будет иметь тип, который не содержит дополнительных статических данных.Он может ссылаться на статическую информацию, но только если вы явно обращаетесь к ней из итератора
Например.
public static class Utils {
public static IEnumerable<int> Range(int start, int count) {
for (var i = start; i <= count; i++) {
yield return i;
}
}
}
Примерно переводится как
public static class Utils {
private class RangeIterator : IEnumerable<int>, IEnumerator<int> {
...
// iterator state machine
}
public static IEnumerable<int> Range(int start, int count) {
return new RangeIterator(start, count);
}
}