freeCodeCamp/guide/spanish/csharp/is/index.md

1.5 KiB

title localeTitle
is is

is

La palabra clave is verifica si un objeto es compatible con un tipo dado, o (desde C# 7) prueba una expresión contra un patrón (pattern matching).

En el siguiente ejemplo se valida si el tipo de obj es Empleado:

if (obj is Empleado) {
   Console.WriteLine("Es un empleado");
}

Hasta C# 6 el uso de is estaba restringido a ese tipo de validaciones, con C# 7, como se mencionó anteriormente, se agregan más funcionalidades a este permitiendo matchear patrones.

Hay tres tipos de patrones soportados:

  • Patrones de tipo
  • Patrones constantes
  • Patrones var

Patrones de tipo

Validan si un objeto puede ser casteado a un tipo dado, de este modo retornará true si el objeto es de la clase o bien, extiende de la clase dada. Por ejemplo:

public class Empleado : Persona {}

Object o = new Empleado();
if (o is Persona p) {
  Console.WriteLine("Es Persona");
}   
if (o is Empleado p) {
  Console.WriteLine("Es Empleado");
}   

// Es Persona
// Es Empleado

Patrones constantes

Permite consultar si el valor de una variable es igual al valor de una constante. Por ejemplo:

expresion is null
expresion is 2

Patrones var

Siempre retornará true. El valor de la variable a consultar se asigna a la variable definida.

var expresion = 2;
  if(expresion is var variable){
	Console.WriteLine(variable);
}

// 2

Más información: