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"); } } } }
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"); } } } }
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