Dentro de una rutina polimórifica
que, como la del ejemplo anterior, admita parámetros que puedan ser de
cualquier tipo, muchas veces es conveniente poder consultar en el código de la
misma cuál es el tipo en concreto del parámetro que se haya pasado al método en
cada llamada al mismo. Para ello C# ofrece el operador is, cuya forma
sintaxis de uso es:
<expresión>
is <nombreTipo>
Este operador devuelve true en
caso de que el resultado de evaluar <expresión>
sea del tipo cuyo nombre es <nombreTipo>
y false
en caso contrario.
Gracias a ellas podemos escribir métodos genéricos que puedan determinar cuál
es el tipo que tienen los parámetros que en cada llamada en concreto se les
pasen. O sea, métodos como:
public
void MétodoGenérico(object o)
{
if (o is int)
// Si o es de tipo int (entero)...
// ...Código a ejecutar si el objeto o es
de tipo int
else
if (o is string) // Si no, si o es de tipo string (cadena)...
// ...Código a ejecutar si o
es de tipo string
//...
Idem para otros tipos
}
El bloque if...else
es una instrucción condicional que permite ejecutar un código u otro en función
de si la condición indicada entre paréntesis tras el if es cierta (true)
o no (false)
Esta instrucción se explicará más detalladamente en el Tema 16: Instrucciones