C # Generics (Español)

0 Comments

Generic significa la forma general, no específica. En C#, genérico significa no específico para un tipo de datos en particular.

C # le permite definir clases genéricas, interfaces, clases abstractas, campos, métodos, métodos estáticos, propiedades, eventos, delegados y operadores utilizando el parámetro type y sin el tipo de datos específico. Un parámetro type es un marcador de posición para un tipo específico especificado al crear una instancia del tipo genérico.

un tipo genérico se declara especificando un parámetro de tipo entre paréntesis angulares después de un nombre de tipo, p. ej., TypeName<T> donde T es un parámetro de tipo.

clase genérica

las clases genéricas se definen utilizando un parámetro de tipo entre corchetes después del nombre de la clase. Lo siguiente define una clase genérica.

Ejemplo: Definir la Clase Genérica

Arriba, el DataStore es una clase genérica., T se llama parámetro de tipo, que se puede usar como un tipo de campos, Propiedades, Parámetros de método, tipos de retorno y delegados en la clase DataStore. Por ejemplo, Data es una propiedad genérica porque hemos utilizado un parámetro de tipo T como su tipo en lugar del tipo de datos específico.

Nota
no es necesario utilizar T como parámetro de tipo. Puede dar cualquier nombre a un parámetro de tipo., Generalmente, T se usa cuando solo hay un parámetro de tipo. Se recomienda el uso de más legible tipo de parámetro nombre como por requisito como TSession, TKey, TValue etc. Más información sobre las Directrices de nomenclatura de parámetros de tipo

También puede definir varios parámetros de tipo separados por una coma.

creación de instancias de clase genérica

puede crear una instancia de clases genéricas especificando un tipo real entre corchetes angulares., El siguiente crea una instancia de la clase genérica DataStore.

Arriba, se especifica el string escriba en el paréntesis angulares, mientras que la creación de una instancia. Así, T será reemplazado con un string escriba donde T se utiliza en la totalidad de la clase en tiempo de compilación. Por lo tanto, el tipo de propiedad Data sería un string.

la siguiente figura ilustra cómo funcionan los genéricos.,

Usted puede asignar un valor de cadena para el Data propiedad. Intentar asignar valores que no sean string resultará en un error en tiempo de compilación.

Usted puede especificar los tipos de datos diferentes para diferentes objetos, como se muestra a continuación.

ANUNCIO

Clase Genérica Características

  • Una clase genérica aumenta la capacidad de reutilización. Cuanto más parámetros de tipo más reutilizable se convierte., Sin embargo, demasiada generalización hace que el código sea difícil de entender y mantener.
  • Una clase genérica puede ser una clase base para otras clases genéricas o no genéricas o clases abstractas.
  • Una clase genérica puede derivarse de otras interfaces genéricas o no genéricas, clases o clases abstractas.

Campos Genéricos

Una clase genérica puede incluir campos genéricos. Sin embargo, no se puede inicializar.

Ejemplo: Campo Genérico

El siguiente declara un genérico de la matriz.,

Ejemplo: Generic Array

Métodos Genéricos

Un método declarado con los parámetros de tipo para el tipo de devolución o parámetros se llama a un método genérico.

arriba, los métodosAddorUpdate() yGetData() son métodos genéricos. El tipo de datos real del parámetro item se especificará en el momento de crear una instancia de la clase DataStore<T>, como se muestra a continuación.,

el tipo de parámetro genérico se puede usar con múltiples parámetros con o sin parámetros no genéricos y tipo de retorno. Los siguientes son métodos genéricos válidos de sobrecarga.

una clase no genérica puede incluir métodos genéricos especificando un parámetro de tipo entre corchetes angulares con el nombre del método, como se muestra a continuación.

ventajas de los genéricos

  1. Los genéricos aumentan la reutilización del código. No necesita escribir código para manejar diferentes tipos de datos.
  2. Los genéricos son seguros., Se obtienen errores en tiempo de compilación si se intenta utilizar un tipo de datos diferente al especificado en la definición.
  3. Genérico tiene una ventaja de rendimiento porque elimina las posibilidades de boxeo y unboxing.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *