Pregunta

Pregunta simple, creo:> Tengo entendido que se está utilizando un objeto imaginario IEnumerator cuando uso un bucle foreach sobre un objeto IEnumerable. Mi pregunta es la siguiente:

¿Cómo puedo "atrapar" el comportamiento ilegal en bucles de foreach que se ocupan de mis objetos? Específicamente quiero ver si mi objeto original desde el cual se creó el IEnumerable ha sido modificado. Si el original ha sido modificado, quiero lanzar una excepción.

Mi enfoque actual ha sido usar un número de versión. Esto funciona muy bien si creo un iterador explícito y uso un MoveNext () o Somesuch, pero los bucles de Foreach parecen engañar mi enfoque basado en la versión.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top