РАЗДЕЛ
	about_Type_Operators

КРАТКОЕ ОПИСАНИЕ
	Описывает операторы, работающие с типами Microsoft .NET Framework.

ПОЛНОЕ ОПИСАНИЕ
	Операторы логического типа (-is и -isnot) определяют, является ли 
	объект экземпляром указанного типа .NET Framework. Оператор -is 
	возвращает значение TRUE, если тип соответствует объекту и 
	значение FALSE, если нет. Оператор -isnot возвращает значение 
	FALSE, если тип соответствует объекту, и значение TRUE, если нет.
 

	Оператор -as пытается преобразовать объект ввода в указанный тип 
	платформы Microsoft .NET Framework. В случае успеха он возвращает 
	преобразованный объект. В случае неудачи он не возвращает ничего. 
	Он не возвращает ошибку.


	В следующей таблице перечислены операторы типов в Windows PowerShell.


	Оператор  Описание					Пример  
	--------  ------------------------	--------------
	-is	 Возвращает TRUE, если на	C:\PS> (get-date) -is [datetime] 
			вводе экземпляр указанного  True
			типа .NET Framework.	 

	-isnot	Возвращает TRUE, если на	C:\PS> (get-date) -isnot [datetime]
			вводе не экземпляр		False
			указанного типа 
			.NET Framework.	
 
	-as	 Преобразует объект ввода	C:\PS> 12/31/07 -as [datetime]
			в указанный тип .NET		Monday, December 31, 2007 12:00:00 AM
			Framework.		 
	 

	Операторы типов используются со следующим синтаксисом:

		<входные_данные> <оператор> [тип .NET]

	Можно использовать также следующий синтаксис:

		<входные_данные> <оператор> "тип .NET"
 

	Тип .NET Framework указывается следующим образом: заключите его 
	имя в квадратные скобки ([ ]) или введите тип как строку, 
	например [DateTime] или "datetime" для типа System.DateTime. Если 
	тип находится не в корневом пространстве имен системы, укажите 
	полное название типа объекта. Можно опустить "System.". Например, 
	чтобы указать System.Diagnostics.Process, введите [System.Diagnost
	ics.Process], [Diagnostics.Process] или "diagnostics.process". 

	Операторы типов всегда возвращают логическое значение, даже если 
	на вводе была коллекция объектов. При этом, если на вводе 
	коллекция, операторы типов находят тип .NET Framework коллекции. 
	Они не находят типы для каждого объекта, даже если все объекты 
	имеют один тип.

	Чтобы найти тип .NET Framework объекта, используйте командлет 
	Get-Member. Можно также использовать метод GetType всех объектов 
	вместе со свойством FullName этого метода. Например, следующая 
	инструкция возвращает тип значения, которое возвращает команда 
	Get-Culture:

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

ПРИМЕРЫ
	Ниже показаны примеры использования операторов 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
 

	Следующий пример показывает, что если на вводе коллекция 
	объектов, соответствующий тип - тип .NET Framework коллекции, а 
	не тип отдельных объектов коллекции.

	В этом примере, несмотря на то что оба командлета Get-Culture и 
	Get-UICulture возвращают объекты 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