Para poder explicar el operador as es recomendable primero conocer el operador is. Este es un operador binario que retorna un booleano y se utiliza de la siguiente manera:
bool retorno = objeto is Clase_X
Si el objeto no tiene el valor null y además es posible obtener este objeto como una instancia de la Clase_X (mediante polimorfismo) sin producirse una Excepcion, entonces el valor devuelto es true, en cualquier otro caso el retorno sera false.
Conociendo este operador se puede comprender de manera simple el operador as.
La forma de utilizar el operador as es la siguiente:
Clase_X MiClase = objeto as Clase_X;
Esta expresion es equivalente a lo siguiente:
Clase_X Miclase;
if( objeto is Clase_X ){
Miclase = (Clase_X)objeto;
} else {
MiClase = null;
}
Se entiende?, la idea principal es tener un operador que realiza cast, pero en caso de no ser posible el cast requerido devuelva el valor null y no lance una CastException como lo haria una expresion como la siguiente.
Clase_X Miclase = (Clase_X)objeto;
Espero sea de utilidad a más de alguien.
No hay comentarios:
Publicar un comentario