Add examples to csharp es "is" guide (#31475)
Add some examples and more explanation to csharp "is" spanish guide
This commit is contained in:
@@ -1,11 +1,65 @@
|
|||||||
---
|
---
|
||||||
title: is
|
title: is
|
||||||
localeTitle: es
|
localeTitle: is
|
||||||
---
|
---
|
||||||
## es
|
## is
|
||||||
|
|
||||||
La palabra clave `is` verifica si un objeto es compatible con un tipo dado, o (comenzando con C # 7) prueba una expresión contra un patrón.
|
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:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
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:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
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:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
expresion is null
|
||||||
|
expresion is 2
|
||||||
|
````
|
||||||
|
|
||||||
|
### Patrones var
|
||||||
|
Siempre retornará **true**. El valor de la variable a consultar se asigna a la variable definida.
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var expresion = 2;
|
||||||
|
if(expresion is var variable){
|
||||||
|
Console.WriteLine(variable);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2
|
||||||
|
````
|
||||||
|
|
||||||
#### Más información:
|
#### Más información:
|
||||||
|
|
||||||
* [Referencia de C #: es](https://docs.microsoft.com/dotnet/csharp/language-reference/keywords/is)
|
* [Referencia de C#: is](https://docs.microsoft.com/dotnet/csharp/language-reference/keywords/is)
|
||||||
|
Reference in New Issue
Block a user