En el desarrollo del software, el encasillamiento es algo ineludible. En muchos casos, el desarrollador necesita convertir un Objeto (Tipo) en otro Objeto (Tipo) y, a veces, puede obtener InvalidCastException. Por lo tanto, para superar este tipo de excepciones, C# proporciona una palabra clave de operador.
El operador as se usa para realizar la conversión entre tipos de referencia compatibles o tipos que aceptan valores NULL. Este operador devuelve el objeto cuando es compatible con el tipo dado y devuelve un valor nulo si la conversión no es posible en lugar de generar una excepción. El funcionamiento de as operator es bastante similar a is an operator pero de forma abreviada.
Sintaxis:
expression as type
La sintaxis anterior es equivalente al siguiente código. Pero la variable de expresión se evaluará solo una vez.
expression is type ? (type)expression : (type)null
Aquí, ‘ es ‘ es una palabra clave de operador.
Nota: La palabra clave del operador ‘as’ en C# se usa solo para conversiones anulables, de referencia y de boxeo. No puede realizar conversiones definidas por el usuario que solo se pueden realizar mediante el uso de expresión de conversión.
Ejemplo 1: en el siguiente código, str1 contiene una string que se asigna a una variable obj1 del tipo de objeto. Ahora, este obj1 se convierte en string usando como operador y asigna el resultado del caso a la variable str2 de tipo string. Si el caso es exitoso, devuelve el resultado; de lo contrario, devuelve nulo. Aquí, if(str2 != null) se usa para verificar si el resultado es nulo o no. ParaList<string> mylist = obj1 as List<string> cast falla y devuelve nulo.
CSharp
// C# program to illustrate // the use of 'as' operator using System; using System.Text; using System.Collections.Generic; class GFG { // Main Method public static void Main() { // taking a string variable string str1 = "GFG"; // taking an Object type variable // assigning var1 to it object obj1 = str1; // now try it to cast to a string string str2 = obj1 as string; // checking Successfully cast or not if(str2 != null) { Console.WriteLine("Successfully Cast"); } // now try to cast it to List List<string> mylist = obj1 as List<string>; // checking Successfully cast or not if(mylist != null) { Console.WriteLine("Successfully Cast"); } else { Console.WriteLine("Not Successful"); } } }
Successfully Cast Not Successful
Ejemplo 2: en el código, estamos tomando una array de objetos que puede almacenar cinco elementos. Los elementos primero y segundo son la instancia de la clase Geeks1 y la clase Geeks2. El tercer elemento es una string y el cuarto elemento es un valor doble y el quinto elemento es un valor nulo. Aquí, string str = obj[j] como string; estamos usando como operador para convertir la array de objetos como una string y almacenar el resultado en la string str. Después de eso, verifique el valor resultante. Si es nulo, imprima el «elemento no es una string» y, si no es nulo, imprima la string.
CSharp
// C# program to illustrate the // concept of 'as' operator using System; // Classes class Geeks1 { } class Geeks2 { } class GFG { // Main method static void Main() { // creating and initializing object array object[] obj = new object[5]; obj[0] = new Geeks1(); obj[1] = new Geeks2(); obj[2] = "C#"; obj[3] = 334.5; obj[4] = null; for (int j = 0; j < obj.Length; ++j) { // using as operator string str = obj[j] as string; Console.Write("{0}:", j); // checking for the result if (str != null) { Console.WriteLine("'" + str + "'"); } else { Console.WriteLine("Is is not a string"); } } } }
0:Is is not a string 1:Is is not a string 2:'C#' 3:Is is not a string 4:Is is not a string
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA