ARGOMENTO
    about_Type_Operators

DESCRIZIONE BREVE
    Descrive gli operatori che utilizzano i tipi Microsoft .NET Framework.

DESCRIZIONE DETTAGLIATA
    Gli operatori di tipo booleani (-is e -isnot) indicano se un 
    oggetto è un'istanza di un tipo .NET Framework specificato. 
    L'operatore -is restituisce un valore TRUE se il tipo corrisponde 
    e un valore FALSE in caso contrario. L'operatore -isnot 
    restituisce un valore FALSE se il tipo corrisponde e un valore 
    TRUE in caso contrario.
 

    L'operatore -as tenta di convertire l'oggetto di input nel tipo 
    .NET Framework specificato. In caso di esito positivo, 
    restituisce l'oggetto convertito. In caso di esito negativo, 
    restituisce nothing. Non restituisce alcun errore.


    Nella tabella seguente vengono elencati gli operatori di tipo in 
    Windows PowerShell.


    Operatore  Descrizione                Esempio  
    --------  ------------------------    --------------
    -is       Restituisce TRUE quando  
              l'input è un'istanza del        C:\PS> (get-date) -is 
              tipo .NET Framework             [datetime] True
              specificato.

    -isnot    Restituisce TRUE quando 
              l'input non è un'istanza        C:\PS> (get-date) -isnot 
              del tipo .NET Framework         [datetime] False
              specificato. 

    -as       Converte l'input nel tipo    
              .NET Framework specificato.     C:\PS> 31/12/07 -as 
                                              [datetime] Lunedì 31 
                                              dicembre 2007 12.00.00


    La sintassi degli operatori di tipo è la seguente:

        <input> <operatore> [tipo .NET]

    È anche possibile utilizzare la sintassi seguente:

        <input> <operatore> "tipo .NET"
 

    Per specificare il tipo .NET Framework, racchiudere il nome del 
    tipo tra parentesi quadre ([ ]) o immettere il tipo come stringa, 
    ad esempio [DateTime] o "datetime" per System.DateTime. Se il 
    tipo non è nella radice dello spazio dei nomi System, specificare 
    il nome completo del tipo di oggetto. È possibile omettere 
    "System.". Ad esempio per specificare System.Diagnostics.Process, 
    immettere [System.Diagnostics.Process], [Diagnostics.Process] o 
    "diagnostics.process." 

    Gli operatori di tipo restituiscono sempre un valore booleano, 
    anche quando l'input è una raccolta di oggetti. Tuttavia, quando 
    l'input è una raccolta, gli operatori di tipo intercettano il 
    tipo .NET Framework della raccolta. Non corrispondono al tipo di 
    ogni oggetto, anche quando tutti gli oggetti sono dello stesso tipo.

    Per trovare il tipo .NET Framework di un oggetto, utilizzare il 
    cmdlet Get-Member. In alternativa, utilizzare il metodo GetType 
    di tutti gli oggetti insieme con la proprietà FullName di questo 
    metodo. Ad esempio, nell'istruzione seguente viene ottenuto il 
    tipo del valore restituito di un comando Get-Culture:

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

ESEMPI
    Negli esempi seguenti vengono illustrati alcuni utilizzi degli 
    operatori di tipo:

        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
 

    Nell'esempio seguente viene illustrato che, quando l'input è una 
    raccolta di oggetti, il tipo intercettato è il tipo .NET 
    Framework della raccolta, non il tipo dei singoli oggetti nella 
    raccolta.

    In questo esempio, anche se i cmdlet Get-Culture e Get-UICulture 
    restituiscono gli oggetti System.Globalization.CultureInfo, una 
    raccolta di questi oggetti è una matrice 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
 

    Negli esempi seguenti viene illustrato come utilizzare 
    l'operatore -as.

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

        C:\PS> "31/12/07" -as [datetime]
        Lunedì 31 dicembre 2007 12.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)

    Nell'esempio seguente viene illustrato che, quando l'operatore 
    -as non può convertire l'oggetto di input nel tipo .NET 
     Framework, restituisce nothing.


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

VEDERE ANCHE
    about_Operators




Argomenti della Guida