me puede ayudar en la comprensión de la palabra clave yield
en asp.net(C#)
.¿Qué es el rendimiento ?, y ¿cuál es la ventaja de usar el rendimiento en asp.net?
Respuesta
El rendimiento de rendimiento crea automáticamente un enumerador para usted.
http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx
Así que usted puede hacer algo como
//pseudo code:
while(get_next_record_from_database)
{
yield return your_next_record;
}
Te permite crear rápidamente una colección de objetos (un enumerador) que puede recorrer y recuperar registros. La sentencia return yield maneja todo el código necesario para crear un enumerador por usted.
La mayor parte de la declaración de rendimiento es que no tiene que cargar todos los elementos en una colección antes de devolver la colección al método de llamada. Permite lazy loading de la colección, por lo que no paga la penalización de acceso de una sola vez.
Cuándo utilizar Yield Return.
yield
se utiliza como azúcar sintáctico para devolver un objeto IEnumerable<T>
o IEnumerator<T>
desde un método sin tener que implementar su propia clase implementando estas interfaces.
yield
le permite emitir un IEnumerable donde normalmente devolvería un tipo más concreto (como un IList).
This is a pretty good example of how it can simplify your code and clarify your intent. En cuanto a dónde lo usarías, en cualquier lugar de tus páginas que necesites iterar sobre una colección, podrías utilizar un método que devuelva un IEnumerable en lugar de una Lista/Diccionario/etc.
Rendimiento es mucho más que azúcar sintáctico o formas fáciles de crear IEnumerables.
Para obtener más información, echa un vistazo al blog de Justin Etherage que has a great article explaining more advanced usages of yield.
Absolutamente. No puede apreciar completamente el 'rendimiento' hasta que comprenda exactamente cómo está creando la máquina de estado para usted. Es increíblemente poderoso. –
Maldita sea, eso es útil. Sé que esto es viejo, pero esa publicación realmente lo hizo por mí. – Terrance
Escribí una muestra simple que muestra cómo se invoca el bloque de rendimiento durante un ciclo de visita de la colección. Verifique here.
- 1. MySQL Enum ¿ventaja de rendimiento?
- 2. ¿Qué es el rendimiento de Scala?
- 3. ¿Cuál es el impacto en el rendimiento del rastreo en C# y ASP.NET?
- 4. ¿Cuál es el impacto en el rendimiento de los Contadores de rendimiento
- 5. ¿Cuál es la diferencia de rendimiento entre HttpModule y Global.aspx?
- 6. ¿Qué es el aliasing y cómo afecta el rendimiento?
- 7. ¿Cuál es la ventaja de Jikes RVM
- 8. ¿Cuál es el ceceo con mayor rendimiento en la JVM
- 9. ¿Cuál es el rendimiento de "ENTREVISTADOR" de mysql en ...?
- 10. ¿Cómo es el rendimiento Accurev?
- 11. PHP: ¿Cuál es el beneficio de spl_autoload_register? Rendimiento de
- 12. ¿Qué tan costoso es JOINs en SQL? Y/o ¿cuál es la compensación entre el rendimiento y la normalización?
- 13. ¿El rendimiento es == IEnumerable & IEnumerator?
- 14. ASP.NET - mejorar el rendimiento
- 15. ¿Cuál es la ventaja de usar métodos estáticos en Python?
- 16. Javascript: ¿Cuál es el rendimiento algorítmico de 'empalme'?
- 17. ¿Cuál es un mejor rendimiento en PHP?
- 18. ¿Cuál es la eficiencia y el rendimiento de LINQ y Lambda Expression en .Net?
- 19. ¿Cuál es el rendimiento del estado pasado de CouchDB = update_after?
- 20. ¿Cuál es el costo de rendimiento de llamar a Thread.isInterrupted()?
- 21. ¿Cuándo usar el rendimiento?
- 22. ¿Cuál es la palabra clave de rendimiento utilizada en C#?
- 23. ¿Qué es mejor en términos de rendimiento?
- 24. ¿Cuál es la ventaja de usar varbinary sobre varchar aquí?
- 25. ¿El rendimiento es útil fuera de LINQ?
- 26. ¿Cuál es exactamente la ventaja de usar Punjab
- 27. ¿Cuál es la ventaja de usar memset() en C
- 28. ¿Cuál es la latencia y el rendimiento de la instrucción RDRAND en Ivy Bridge?
- 29. ¿Cuál es la mejor manera de solucionar problemas de rendimiento?
- 30. Entity Framework + MySQL - ¿Por qué el rendimiento es tan terrible?
?? ¿Por qué los downvotes? ¿Soy incorrecto? – spoulson
Sí, porque es diferente de crear el IEnumerable usted mismo y devolverlo. –
No hay nada de incorrecto en esta respuesta. –