as (Referencia de C#)
Puede utilizar el operador de as para realizar algunos tipos de conversiones entre los tipos de referencia compatibles o tipos que aceptan valores NULL. El siguiente fragmento de código muestra un 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. Considere el ejemplo siguiente:
expression as type
El código es equivalente a la siguiente expresión salvo que la variable de expression se evalúan sólo una vez.
expression is type ? (type)expression : (type)null
Observe que el operador de as realiza sólo conversiones de referencia, conversiones que acepta valores NULL, y conversiones boxing. El operador de as no puede realizar otras conversiones, como conversiones definidas por el usuario, que deben en su lugar realizar mediante expresiones de conversión.
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, consulte la Especificación del lenguaje C#. La especificación del lenguaje es la fuente definitiva de la sintaxis y el uso de C#.
Vea también
Referencia
Operador ?: (Referencia de C#)
Palabras clave de operadores (Referencia de C#)