항목
    about_Type_Operators

간단한 설명
    Microsoft .NET Framework 유형에 사용할 수 있는 연산자에 대해 설명합니다.

자세한 설명
    부울 유형 연산자(-is 및 -isnot)는 개체가 지정된 .NET Framework 유형의 인스턴스인지 여부를 
    알려줍니다. -is 연산자는 유형이 일치하면 TRUE 값을 반환하고, 그렇지 않으면 FALSE 값을 반환합니다. 
    -isnot 연산자는 유형이 일치하면 FALSE 값을 반환하고, 그렇지 않으면 TRUE 값을 반환합니다.
 

    -as 연산자는 입력 개체를 지정된 .NET Framework 유형으로 변환합니다. 변환에 성공하는 경우 변환된 
    개체를 반환하고, 변환에 실패하는 경우에는 아무 것도 반환하지 않으며 오류도 반환하지 않습니다.


    다음 표에는 Windows PowerShell의 유형 연산자가 정리되어 있습니다.


    연산자    설명                              예  
    --------  ------------------------------    --------------------------------------
    -is       입력이 지정된 .NET Framework      C:\PS> (get-date) -is [datetime] 
	      유형의 인스턴스이면 TRUE를  	True
	      반환합니다.

    -isnot    입력이 지정된 .NET Framework      C:\PS> (get-date) -isnot [datetime] 
	      유형의 인스턴스가 아니면    	False
	      TRUE를 반환합니다.
 
    -as       입력을 지정된 .NET Framework      C:\PS> 12/31/07 -as [datetime] 
	      유형으로 변환합니다.   		Monday, December 31, 2007 12:00:00 AM


    유형 연산자의 구문은 다음과 같습니다.

        <input> <operator> [.NET type]

    다음 구문도 사용할 수 있습니다.

        <input> <operator> ".NET type"
 

    .NET Framework 유형을 지정하려면 유형 이름을 대괄호([ ])로 묶거나 유형을 문자열로 입력합니다(예: 
    System.DateTime의 경우 [DateTime] 또는 "datetime"). 유형이 시스템 네임스페이스의 루트에 있지 않으면 
    개체 유형의 전체 이름을 지정합니다. "System."을 생략할 수 있습니다. 예를 들어 System.Diagnostics.Process를 
    지정하려면 [System.Diagnostics.Process], [Diagnostics.Process] 또는 "diagnostics.process"를 입력합니다. 

    유형 연산자는 입력이 개체의 컬렉션인 경우에도 항상 부울 값을 반환합니다. 그러나 입력이 컬렉션인 경우 유형 
    연산자는 컬렉션의 .NET Framework 유형을 일치시킵니다. 유형 연산자는 모든 개체가 동일한 유형인 경우에도 각 
    개체의 유형을 일치시키지 않습니다.

    개체의 .NET Framework 유형을 찾으려면 Get-Member cmdlet을 사용합니다. 또는 이 메서드의 FullName 속성과 함께 
    모든 개체의 GetType 메서드를 사용합니다. 예를 들어 다음 문은 Get-Culture 명령의 반환 값 유형을 가져옵니다.

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

예제
    다음 예제에서는 유형 연산자의 몇 가지 사용 방법을 보여 줍니다.

        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
 

    다음 예제에서는 입력이 개체의 컬렉션인 경우 일치하는 유형이 컬렉션에 있는 개별 개체의 
    유형이 아니라 컬렉션의 .NET Framework 유형임을 보여 줍니다.

    이 예제에서 Get-Culture 및 Get-UICulture cmdlet은 모두 System.Globalization
    .CultureInfo 개체를 반환하지만 이러한 개체의 컬렉션은 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
 

    다음 예제에서는 -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)

    다음 예제에서는 -as 연산자가 입력 개체를 .NET Framework 유형으로 변환할 수 없는 경우 아무 것도 
    반환하지 않음을 보여 줍니다.


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

참고 항목
    about_Operators




목차