Jump to content


Photo

Variables inferidas en Delphi Prism


  • Please log in to reply
2 replies to this topic

#1 markdelphi

markdelphi

    Advanced Member

  • Moderadores
  • PipPipPip
  • 97 posts
  • LocationMéxico

Posted 02 January 2009 - 06:17 PM

Los desarrolladores siempre hemos estado acostumbrados a definir variables especificando siempre el tipo de datos que almacenará. Pero ahora el compilador de .NET puede inferir el tipo de datos que estamos intentando usar basado en nuestro código. Este proceso se llama inferencia de tipos locales o tipos implícitos.

Observemos la siguiente línea de código:

Var saludo : String := 'Hola';

Esta es un caso típico de declaración de variable en la cual especificamos el tipo de datos en este caso String, Ahora veamos cómo podemos declarar esta misma variable usando la inferencia de tipos:

Var saludo := 'Hola'

Podemos observar que no es necesario incluir la parte “: String” en la declaración ya que el compilador determina que la variable que necesitamos es de tipo String
Las dos líneas de código anteriores son equivalentes, pero en el segundo caso el tipo de datos no es declarado, ya que es declarado por el compilador. No debemos confundirnos al pensar que al declarar una variable de esta forma estamos declarando un tipo de dato generalizado de tipo Object. Como dije antes el compilador escoge el tipo de dato en base al código.

Hay algunas cosas que debemos tomar en cuenta al usar la inferencia de tipos. La primera es que se requiere que a la variable local se le asigne un valor con el fin de que el compilador sepa qué tipo de dato es que almacenará.
La segunda cosa que debemos de considerar es que la inferencia de tipos solo funciona con los tipos locales. No funciona con las variables a nivel de clase (también llamados campos). 




  • 0

#2 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4483 posts
  • LocationVenezuela

Posted 07 January 2009 - 06:26 AM

Buen dato, pero no estara haciendo lo mismo de VB y creando unas Variant?
  • 0

#3 markdelphi

markdelphi

    Advanced Member

  • Moderadores
  • PipPipPip
  • 97 posts
  • LocationMéxico

Posted 07 January 2009 - 09:58 AM

No, el compilador infiere el tipo de dato que estas asignando y declara la variable del tipo apropiado.

Imagen Enviada

Como puedes verlo en la imagen, al pasar el cursor por la variable intellisense muestra que la vaiable es de tipo System.String
  • 0




IP.Board spam blocked by CleanTalk.