as (Referencia de C#)
Actualización: noviembre 2007
El operador as se usa para realizar determinados tipos de conversiones entre tipos de referencia compatibles. Por ejemplo:
class csrefKeywordsOperators
{
class Base
{
public override string ToString()
{
return "Base";
}
}
class Derived : Base
{ }
class Program
{
static void Main()
{
Derived d = new Derived();
Base b = d as Base;
if (b != null)
{
Console.WriteLine(b.ToString());
}
}
}
}
Comentarios
El operador as es como una operación de conversión de tipos. Sin embargo, si la conversión no es posible, as devuelve null en lugar de producir una excepción. Observe la siguiente expresión:
expression as type
Es equivalente a la expresión siguiente, con la excepción de que expression se evalúa sólo una vez.
expression is type ? (type)expression : (type)null
Debe tenerse en cuenta que el operador as solamente ejecuta conversiones de referencia y conversiones boxing. El operador as no puede realizar otras conversiones, como las definidas por el usuario, que se deben realizar con expresiones de conversión explícitas.
Ejemplo
class ClassA { }
class ClassB { }
class MainClass
{
static void Main()
{
object[] objArray = new object[6];
objArray[0] = new ClassA();
objArray[1] = new ClassB();
objArray[2] = "hello";
objArray[3] = 123;
objArray[4] = 123.4;
objArray[5] = null;
for (int i = 0; i < objArray.Length; ++i)
{
string s = objArray[i] as string;
Console.Write("{0}:", i);
if (s != null)
{
Console.WriteLine("'" + s + "'");
}
else
{
Console.WriteLine("not a string");
}
}
}
}
/*
Output:
0:not a string
1:not a string
2:'hello'
3:not a string
4:not a string
5:not a string
*/
Especificación del lenguaje C#
Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.
6 Conversiones
7.9.11 El operador as
Vea también
Conceptos
Referencia
Operador ?: (Referencia de C#)
Palabras clave de operadores (Referencia de C#)