Compartir a través de


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

Guía de programación de C#

Referencia

Palabras clave de C#

is (Referencia de C#)

Operador ?: (Referencia de C#)

Palabras clave de operadores (Referencia de C#)

Otros recursos

Referencia de C#