< Return to Video

Generics - Unity Official Tutorials

  • 0:00 - 0:02
    Generics (genéricas) son una característica dónde las clases
  • 0:02 - 0:04
    y métodos, entre otras cosas, pueden ser
  • 0:04 - 0:06
    parsed por un tipo como parámetro.
  • 0:06 - 0:08
    Esto en efecto le permite a usted programar genéricamente
  • 0:08 - 0:10
    sin saber el tipo exacto del
  • 0:10 - 0:12
    dato con el cual estará trabajando.
  • 0:12 - 0:14
    Nosotros hemos visto antes que el método GetComponent
  • 0:14 - 0:16
    utiliza un parámetro genérico para obtener el tipo
  • 0:16 - 0:18
    de componente que está buscando.
  • 0:18 - 0:21
    GetComponent es lo que es conocido como un método genérico.
  • 0:21 - 0:23
    Echemos un vistazo en crear uno.
  • 0:23 - 0:25
    Aquí nosotros tenemos un ejemplo de un método simple genérico.
  • 0:25 - 0:28
    La primera cosa para mirar es su parámetro genérico.
  • 0:28 - 0:31
    Esto se llama T y está encerrado en unos paréntesis angulares
  • 0:31 - 0:33
    Después del nombre del método y antes de la normal.
  • 0:33 - 0:35
    o parámetros formales.
  • 0:35 - 0:37
    Ya que este T puede representar cualquier tipo
  • 0:37 - 0:40
    su nombre es arbitrario, pero en la mayoría utiliza la letra
  • 0:40 - 0:42
    T por convención.
  • 0:42 - 0:44
    Similarmente si usted desea tener múltiples parámetros
  • 0:44 - 0:48
    genéricos usted puede utilizar una coma para agregar más.
  • 0:48 - 0:50
    La convención de nombramiento usualmente sigue esos
  • 0:50 - 0:53
    parámetros después T son U y luego V.
  • 0:53 - 0:55
    Aunque las funciones genéricas no están limitadas solamente
  • 0:55 - 0:57
    a tres parámetros no es común ver uno
  • 0:57 - 0:59
    con más de tres.
  • 0:59 - 1:01
    Nosotros sabemos que el tipo genérico asociado con
  • 1:01 - 1:02
    este método es T.
  • 1:02 - 1:04
    T es solamente un lugar dónde colocarlo sin embargo, y terminará
  • 1:04 - 1:07
    siendo un tipo en realidad cuando el método sea llamado.
  • 1:07 - 1:09
    Cual sea el tipo que T termine siendo también
  • 1:09 - 1:11
    será el tipo de retorno y el tipo de argumento
  • 1:11 - 1:13
    para el método ya que ambos de estos utilizan
  • 1:13 - 1:15
    T como su tipo.
  • 1:15 - 1:17
    Aunque nosotros tenemos un método que funciona
  • 1:17 - 1:20
    con un tipo genérico, actualmente no es muy útil.
  • 1:20 - 1:22
    Entonces qué podemos hacer con un tipo genérico?
  • 1:22 - 1:24
    Bueno ya que nosotros no sabemos cómo este tipo genérico va a
  • 1:24 - 1:26
    actuar nosotros no podemos hacer mucho con él.
  • 1:26 - 1:28
    Este parámetro genérico podría ser cualquier cosa desde un
  • 1:28 - 1:31
    float a un monobehaviour y más.
  • 1:31 - 1:33
    Ya que nosotros no sabemos qué es no hay muchas
  • 1:33 - 1:35
    operaciones que podamos realizar.
  • 1:35 - 1:37
    No podemos, por ejemplo, multiplicar nuestro
  • 1:37 - 1:39
    monobehaviour por dos y nosotros no podemos acceder
  • 1:39 - 1:42
    el campo de game object de un float.
  • 1:42 - 1:44
    Ahora, solamente se trata como si fuera
  • 1:44 - 1:46
    un objeto de una clase, el cual es la clase base
  • 1:46 - 1:48
    de la cual todas las clases c# implícitamente heredan de.
  • 1:49 - 1:51
    Entonces cómo realizamos más operaciones?
  • 1:51 - 1:54
    Con el fin de saber algunas de las características del tipo
  • 1:54 - 1:56
    nosotros tenemos que limitar qué tipos pueden ser al
  • 1:56 - 1:58
    colocar una restricción en el parámetro genérico.
  • 1:59 - 2:01
    Para agregar restricciones a nuestra función nosotros ingresamos
  • 2:01 - 2:03
    dónde después de los parámetros
  • 2:03 - 2:05
    pero antes del cuerpo de la función.
  • 2:05 - 2:07
    Esto es seguido por el tipo genérico que nosotros vamos
  • 2:07 - 2:10
    a restringir, en nuestro caso T y luego dos puntos.
  • 2:11 - 2:13
    Después de los dos puntos nosotros tenemos las restricciones
  • 2:13 - 2:15
    especificas separadas por comas.
  • 2:15 - 2:18
    Las restricciones por lo general caen en cuatro categorías.
  • 2:18 - 2:20
    Usted puede ya sea utilizar la tecla clave ‘class’ para
  • 2:20 - 2:22
    asegurarse de que T es un tipo de referencia
  • 2:22 - 2:25
    o la palabra clave ‘struct’ para asegurarse de que sea un tipo de valor.
  • 2:25 - 2:27
    Usted puede utilizar la palabra clave ‘new’ seguida por
  • 2:27 - 2:29
    un par de paréntesis para asegurarse de que tenga
  • 2:29 - 2:31
    constructor público con ningún parámetros
  • 2:32 - 2:34
    Usted puede utilizar un nombre de clase para decir que T
  • 2:34 - 2:37
    es esa clase o vía polimorfismo
  • 2:37 - 2:39
    a cualquier clase que derive de ella.
  • 2:39 - 2:41
    La última categoría de restricciones son las interfaces.
  • 2:41 - 2:43
    Usted puede utilizar el nombre de una interfaz para decir que T
  • 2:43 - 2:45
    ha implementado esa interfaz.
  • 2:45 - 2:47
    Con el fin de utilizar un método genérico usted debe
  • 2:47 - 2:50
    especifica qué tipo usted quiere utilizar.
  • 2:50 - 2:52
    Digamos que usted quiero utilizar el método genérico
  • 2:52 - 2:54
    que acaba de crear.
  • 2:54 - 2:56
    En otra clase usted escribiría el nombre del método
  • 2:56 - 2:58
    seguido por paréntesis angulares y el tipo que usted quiere.
  • 2:58 - 3:00
    Usted luego seguiría eso con un paréntesis
  • 3:00 - 3:01
    y cualquier argumento.
  • 3:01 - 3:03
    Todas las características que hemos discutido aplican
  • 3:03 - 3:07
    a clases genéricas e interfaces al igual que métodos.
  • 3:07 - 3:09
    Al darle a una clase tipos genéricos usted
  • 3:09 - 3:11
    puede afectar los tipos de campos, propiedades
  • 3:11 - 3:13
    y métodos dentro de este.
  • 3:13 - 3:15
    Hacer clases genéricas es uno de los usos más
  • 3:15 - 3:17
    comunes de genéricos y hace que sea muy fácil
  • 3:17 - 3:18
    implementar estructuras de datos.
  • 3:18 - 3:21
    Echemos un vistazo a la clase genérica ahora.
  • 3:22 - 3:24
    Esta clase utiliza un tipo genérico de T.
  • 3:24 - 3:26
    Esto significa que cada instancia del tipo T
  • 3:26 - 3:28
    utilizado como un tipo en la clase
  • 3:28 - 3:31
    será remplazado por un tipo actual cuando sea utilizado.
  • 3:31 - 3:33
    Esta clase tiene una sola variable miembro
  • 3:33 - 3:36
    llamado ‘item’ que es de tipo T.
  • 3:36 - 3:39
    La clase también tiene un método llamado UpdateItem
  • 3:39 - 3:40
    que toma un solo argumento de tipo T
  • 3:40 - 3:42
    y le asigna un item miembro.
  • 3:43 - 3:45
    Con el fin de instanciar un objeto de esta clase
  • 3:45 - 3:48
    usted debe especificar un tipo para T.
  • 3:48 - 3:50
    Usted hace esto al ingresar el nombre de la clase
  • 3:50 - 3:52
    seguido por unos corchetes angulares y el tipo que usted quiere.
  • 3:53 - 3:55
    Usted debe también hacer esto después de ingresar el nombre
  • 3:55 - 3:58
    del constructor y antes de la lista de parámetros del constructor.
  • 3:58 - 4:00
    Uno de los usos más comunes de genéricos es para
  • 4:00 - 4:03
    colecciones como diccionarios y listas.
  • 4:03 - 4:05
    Para más información acerca de diccionarios y listas
  • 4:05 - 4:07
    ver la lección vinculada abajo.
Title:
Generics - Unity Official Tutorials
Description:

more » « less
Video Language:
English
Duration:
04:09

Spanish subtitles

Revisions