From 4981873b9c562fda0810a4f4d7f51137767f3500 Mon Sep 17 00:00:00 2001 From: gperez Date: Tue, 13 Aug 2019 16:34:30 -0300 Subject: [PATCH] Add examples to csharp es "is" guide (#31475) Add some examples and more explanation to csharp "is" spanish guide --- guide/spanish/csharp/is/index.md | 62 +++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/guide/spanish/csharp/is/index.md b/guide/spanish/csharp/is/index.md index 8c923454d4..c991a62b74 100644 --- a/guide/spanish/csharp/is/index.md +++ b/guide/spanish/csharp/is/index.md @@ -1,11 +1,65 @@ --- 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: -* [Referencia de C #: es](https://docs.microsoft.com/dotnet/csharp/language-reference/keywords/is) \ No newline at end of file +* [Referencia de C#: is](https://docs.microsoft.com/dotnet/csharp/language-reference/keywords/is)