TEMA
    about_Type_Operators

DESCRIPCIÓN BREVE
    Describe los operadores que funcionan con tipos de Microsoft .NET 
    Framework.

DESCRIPCIÓN DETALLADA
    Los operadores de tipo booleano (-is y -isnot) indican si un 
    objeto es una instancia de un tipo de .NET Framework 
    especificado. El operador -is devuelve el valor TRUE si el tipo 
    coincide y el valor FALSE en caso contrario. El operador -isnot 
    devuelve el valor FALSE si el tipo coincide y el valor TRUE en 
    caso contrario.
 

    El operador -as intenta convertir el objeto de entrada al tipo de 
    .NET Framework especificado. Si se ejecuta correctamente, 
    devuelve el objeto convertido. En caso contrario, no devuelve 
    nada. No devuelve un error.


    En la tabla siguiente se enumeran los operadores de tipo de 
    Windows PowerShell.


    Operador  Descripción                 Ejemplo  
    --------  ------------------------    --------------
    -is       Devuelve TRUE cuando la     C:\PS> (get-date) -is
              entrada es una instancia    [datetime] True
              del tipo de .NET Framework 
              especificado.        
     

    -isnot    Devuelve TRUE cuando la     C:\PS> (get-date) 
              entrada no es una instancia -isnot [datetime] False 
              del tipo de .NET Framework 
              especificado.       
     
 
    -as       Convierte la entrada al     C:\PS> 12/31/07 -as [datetime] Monday, 
              tipo de .NET Framework      December 31, 2007 12:00:00 AM
              especificado.               
                                          


    Esta es la sintaxis de los operadores de tipo:

        <entrada> <operador> [.NET type]

    También puede usar la sintaxis siguiente:

        <entrada> <operador> ".NET type"
 

    Para especificar el tipo de .NET Framework, incluya el nombre de 
    tipo entre corchetes ([]) o escriba el tipo como una cadena, como 
    [DateTime] o "datetime" para System.DateTime. Si el tipo no está 
    en la raíz del espacio de nombres System, especifique el nombre 
    completo del tipo de objeto. Puede omitir "System.". Por ejemplo, 
    para especificar System.Diagnostics.Process, escriba 
    [System.Diagnostics.Process], [Diagnostics.Process] o 
    "diagnostics.process". 

    Los operadores de tipo siempre devuelven un valor booleano, 
    aunque la entrada sea una colección de objetos. Sin embargo, 
    cuando la entrada es una colección, los operadores de tipo 
    coinciden con el tipo de .NET Framework de la colección. No 
    coinciden con el tipo de cada objeto, incluso en el caso de que 
    todos los objetos sean del mismo tipo.

    Para buscar el tipo de .NET Framework de un objeto, utilice el 
    cmdlet Get-Member. También puede utilizar el método GetType de 
    todos los objetos junto con la propiedad FullName de este método. 
    Por ejemplo, la instrucción siguiente obtiene el tipo del valor 
    devuelto de un comando Get-Culture:

        C:\PS> (get-culture).gettype().fullname
        System.Globalization.CultureInfo
 

EJEMPLOS
    En los ejemplos siguientes se muestran algunos usos de los 
    operadores Type:

        C:\PS> 32 -is [Float]
        False

        C:\PS> 32 -is "int"
        True

        C:\PS> (get-date) -is [DateTime]
        True

        C:\PS> "12/31/2007" -is [DateTime]
        False

        C:\PS> "12/31/2007" -is [String]
        True

        C:\PS> (get-process powershell)[0] -is [System.Diagnostics.Process]
        True

        C:\PS> (get-command get-member) -is [System.Management.Automation.CmdletInfo]
        True
 

    En el ejemplo siguientes se muestra que cuando la entrada es una 
    colección de objetos, el tipo correspondiente es el tipo de .NET 
    Framework de la colección, no el tipo de los objetos individuales 
    de la colección.

    En este ejemplo, aunque los cmdlets Get-Culture y Get-UICulture 
    devuelven objetos System.Globalization.CultureInfo, una colección 
    de estos objetos es una matriz System.Object.

        C:\PS> (get-culture) -is [System.Globalization.CultureInfo]
        True

        C:\PS> (get-uiculture) -is [System.Globalization.CultureInfo]
        True

        C:\PS> (get-culture), (get-uiculture) -is [System.Globalization.CultureInfo]
        False

        C:\PS> (get-culture), (get-uiculture) -is [Array]
        True
 
        C:\PS> (get-culture), (get-uiculture) | foreach {$_ -is [System.Globalization.CultureInfo])
        True
        True

        C:\PS> (get-culture), (get-uiculture) -is [Object]
        True
 

    En los ejemplos siguientes se muestra la forma de usar el 
    operador -as.

        C:\PS> "12/31/07" -is [datetime]
        False

        C:\PS> "12/31/07" -as [datetime]
        Monday, December 31, 2007 12:00:00 AM

        C:\PS> $date = "12/31/07" -as [datetime]

        C:\PS>$a -is [datetime]
        True

        C:\PS> 1031 -as [System.Globalization.CultureInfo]

        LCID             Name             DisplayName
        ----             ----             -----------
        1031             de-DE            German (Germany)

    En el ejemplo siguientes se muestra que cuando el operador -as no 
    puede convertir el objeto de entrada al tipo de .NET Framework, 
    no devuelve nada.


        C:\PS> 1031 -as [System.Diagnostic.Process]
        C:\PS>
 

VEA TAMBIÉN
    about_Operators




Tabla de contenido