logo logo
Inicio arrow Foros...
Sunday, 04 de January de 2009
 
 
English English  Español Español  
Próximos Eventos
10.Jun. 2009

IWANN 2009
Salamanca, Spain
11.Jun. 2009

Toward a Science of Consciousness
Hong Kong, China
15.Jun. 2009

International Workshop on Machine Consciousness
Hong Kong, China
15.Jun. 2009

The 8th IEEE International Conference on Cognitive Informatics
Hong Kong, China
22.Jun. 2009

IWINAC 2009
Santiago de Compostela, Spain
Etiquetas
Análisis Artificial Científicos Conciencia Consciencia Consciencia Artificial Conscientes Consciousness Developer Documentación Documentation Español Howto Investigación Publicaciones Reviews Robotics Robots Robótica Servicios Spanish Studio VPL artificial
Destacados
Conscious-Robots.com Forum  


Raúl
Moderador

Moderador
Mensajes: 444
graph
Karma: 6  
Re:What is that yield return, yield break thing? - 2007/12/22 19:58 When you look for the first time to the C# sample code provided with Robotics Studio you will notice that some new features of this language are extensively used. Statements like yield return, yield break, and IEnumerator<ITask> might call your attention.

Basically, all of this is about Iterators. If you are new to C# 2.0 and want to program robotics applications using Robotics Studio you should clearly understand how Iterators are used.

Iterators can be methods, get accessors or operators that support foreach interation in a class. Usually, if you want to use the foreach statement with a given class you need to implement the IEnumerable interface. However, using Iterators allows you to support foreach iteration in a class without having to implement the entire IEnumerable interface. You just need to write an iterator able to sequentially access the data structures contained in your class. The Visual Studio compiler detects iterators and automatically generates the IEnumerable methods Current, MoveNext and Dispose.

When writting iterators code, the statement yield return is used to return each element in turn, while yield break ends the iteration. The elements returned by yield return <expression> have to be of type IEnumerable or IEnumerator. In the case of Robotics Studio, when we are using the CCR, we usually return a IEnumerator<ITask> (as the generics IEnumerable<T> and IEnumerator<T> can also be used with iterators). Basically, what we are doing is dispatching a collection of tasks.

Have a look to the following links for a detailed explanation and sample code:


C# Programming Guide: Iterators: http://msdn2.microsoft.com/en-us/library/dscyy5s0(VS.80).aspx
yield statement (C# Reference): http://msdn2.microsoft.com/en-us/library/9k7k7cf0(VS.80).aspx
foreach statement (C# reference): http://msdn2.microsoft.com/en-us/library/ttw7t8t6(VS.80).aspx
Using Iterators (C# Programming Guide): http://msdn2.microsoft.com/en-us/library/65zzykke(VS.80).aspx
Raúl Arrabales Moreno. conscious-robots.com/raul
  El administrador ha deshabilitado la escritura de mensajes a los usuarios no registrados.

      Temas Autor Fecha
    thread link
What is that yield return, yield break thing?
Raúl 2007/12/22 19:55
    thread link
thread linkthread link Re:What is that yield return, yield break thing?
Raúl 2007/12/22 19:58
Titulares RSS
 Conscious Robots RSS FeedFuente RSS de Conscious Robots





¿Recuperar contraseña?
¿Quieres registrarte? Hazlo aquí
Mensajes en el Foro
 
Top! Top!