Compartilhar via


about_Type_Operators

TÓPICO
    about_Type_Operators

DESCRIÇÃO RESUMIDA
    Descreve os operadores que funcionam com os tipos do Microsoft .NET Framework.

DESCRIÇÃO LONGA
    Os operadores de tipo booleanos (-is e -isnot) informam se um 
    objeto é uma instância de um tipo especificado do .NET Framework. 
    O operador -is retornará um valor TRUE se o tipo corresponder; 
    caso contrário, um valor FALSE. O operador -isnot retornará um 
    valor FALSE se o tipo corresponder; caso contrário, um valor TRUE.
 

    O operador -as tenta converter o objeto de entrada ao tipo 
    especificado do .NET Framework. Se tiver sucesso, retornará o 
    objeto convertido. Se falhar, não retornará nada. Ele não retorna 
    erro.


    A tabela a seguir lista os operadores de tipo no Windows PowerShell.


    Operador  Descrição                   Exemplo  
    --------  ------------------------    -------------------------------------
    -is       Retorna TRUE quando a       C:\PS> (get-date) -is [datetime] True
              entrada é uma instância 
              do tipo especificado do 
              .NET Framework.       

    -isnot    Retorna TRUE quando a       C:\PS> (get-date) -isnot [datetime] False
              entrada não é uma instância  
              do tipo especificado do 
              .NET Framework.       
 
    -as       Converte a entrada ao       C:\PS> 31/12/07 -as [datetime] Segunda-feira, 
              tipo especificado do        31 de dezembro de 2007 00:00:00
              .NET Framework.       


    A sintaxe dos operadores de tipo é a seguinte:

        <entrada> <operador> [.NET type]

    Você também pode usar a sintaxe a seguir:

        <entrada> <operador> ".NET type"
 

    Para especificar o tipo do .NET Framework, coloque o nome do tipo 
    entre colchetes ([]) ou insira o tipo como uma cadeia de 
    caracteres, como [DateTime] ou "datetime" para System.DateTime. 
    Se o tipo não estiver na raiz do namespace do sistema, 
    especifique o nome completo do tipo de objeto. Você pode omitir 
    "System.". Por exemplo, para especificar System.Diagnostics.Proces
    s, insira [System.Diagnostics.Process], [Diagnostics.Process] ou 
    "diagnostics.process". 

    Os operadores de tipo sempre retornam um valor booleano, mesmo 
    que a entrada seja uma coleção de objetos. Contudo, quando a 
    entrada é uma coleção, os operadores de tipo fazem a 
    correspondência com o tipo do .NET Framework para a coleção. Eles 
    não fazem a correspondência com o tipo de cada objeto, nem mesmo 
    quando todos os objetos são do mesmo tipo.

    Para localizar o tipo do .NET Framework para um objeto, use o 
    cmdlet Get-Member. Ou então use o método GetType de todos os 
    objetos, junto com a propriedade FullName desse método. Por 
    exemplo, a instrução a seguir obtém o tipo do valor de retorno de 
    um comando Get-Culture:

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

EXEMPLOS
    Os exemplos a seguir mostram alguns usos dos operadores Type:

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

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

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

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

        C:\PS> "31/12/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
 

    O exemplo a seguir mostra que, quando a entrada é uma coleção de 
    objetos, o tipo correspondente é o tipo do .NET Framework para a 
    coleção, e não o tipo dos objetos individuais na coleção.

    Neste exemplo, embora os cmdlets Get-Culture e Get-UICulture 
    retornem objetos System.Globalization.CultureInfo, uma coleção 
    desses objetos é uma 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
 

    Os exemplos a seguir mostram como usar o operador -as.

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

        C:\PS> "31/12/07" -as [datetime]
        Segunda-feira, 31 de dezembro de 2007 00:00:00

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

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

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

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

    O exemplo a seguir mostra que, quando o operador -as não pode 
    converter o objeto de entrada ao tipo do .NET Framework, ele não 
    retorna nada.


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

CONSULTE TAMBÉM
    about_Operators