Cómo implementar su funcionalidad sin usar su palabra clave en C#

Requisito previo: es palabra clave y como palabra clave

Antes de implementar esta operación sin la palabra clave , veamos brevemente cómo funciona realmente la palabra clave.

es palabra clave

En C#, esta palabra clave se usa para evaluar la compatibilidad en tiempo de ejecución. Determina si una instancia de objeto o el resultado de una expresión se puede convertir a un tipo específico.

Sintaxis:

expr is type

Ejemplo: en la clase de código a continuación, la clase de programa hereda una clase c1 y en «si la condición» la compatibilidad se verifica usando el operador es que devuelve verdadero.

// C# program to illustrate the  
// use of 'is' operator keyword 
using System;
  
namespace GeeksforGeeks {
  
// Taking an empty class
class c1 {
  
} 
  
// Program class inherits c1
class Program : c1 
{
  
    // Main Method
    static void Main(string[] args)
    {
  
        // object of Program class
        Program pro1 = new Program(); 
  
        // dynamic check of compatibility.
        // pro1 is the object of Program class
        // and c1 is class which is inherited by 
        // Program class
        if (pro1 is c1) 
        {
            Console.WriteLine("GeeksForGeeks");
        }
    }
}
}
Producción:

GeeksForGeeks

Es implementación sin usar es palabra clave

La funcionalidad similar se puede implementar usando como palabra clave que devuelve

  • nulo si la compatibilidad no está configurada
  • y en caso de operandos compatibles, devuelve el operando LHS.

Ejemplo: en el siguiente código, el objeto de la clase c1 es pro2 y, por lo tanto, no se puede asignar como una instancia de la clase Program, por lo tanto, obj2 se establece como nulo, lo que luego se verifica en la condición if.

// C# program to illustrates the is keyword 
// functionality without using is keyword
using System;
  
namespace GeeksforGeeks {
  
// Taking an empty class
class c1 { } 
  
// Class Program inherits the class c1
class Program : c1
{
  
    // Main Method
    static void Main(string[] args)
    {
  
        // Creating the object of Program class
        Program pro1 = new Program();
  
        // Creating the object of c1 class
        c1 pro2 = new c1();
  
        // Here, assigns obj1 with pro1 i.e. 
        // LHS operand as compatibility is set
        var obj1 = pro1 as c1;
  
        // Here, assigns obj2 with null as 
        // compatibility is not set
        var obj2 = pro2 as Program;
  
        // from above, obj1 is not null
        if (obj1 != null) 
        {
            Console.WriteLine("GeeksForGeeks");
        }
  
        // from above, obj2 is null
        if (obj2 != null) 
        {
            Console.WriteLine("This Line will not be printed");
        }
    }
}
}
Producción:

GeeksForGeeks

Nota: También puede encontrar algunas diferencias significativas entre la palabra clave is y la palabra clave as consultando el artículo Palabra clave del operador Is vs As en C#

Publicación traducida automáticamente

Artículo escrito por piyush25pv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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