Где я могу найти список Powershell Акселераторами Типа.NET?

Я раньше предпочитал ', специально для '''docstrings''', поскольку я нахожу """this creates some fluff""". Кроме того, ' может быть введен без , Сдвиг включает мою швейцарскую немецкую клавиатуру.

я с тех пор изменился на использование тройных кавычек для """docstrings""", для приспосабливания PEP 257.

17
задан Tyson Gilberstad 17 July 2009 в 22:34
поделиться

3 ответа

См. Раздел под названием Псевдонимы имен типов в этой записи блога . Я считаю, что это полный список псевдонимов.

PowerShell Type Alias   Corresponding .NET Type
[int]                   System.Int32
[int[]]                 System.Int32[]
[long]                  System.Int64
[long[]]                System.Int64[]
[string]                System.String
[string[]]              System.String[]
[char]                  System.Char
[char[]]                System.Char[]
[bool]                  System.Boolean
[bool[]]                System.Boolean[]
[byte]                  System.Byte
[byte[]]                System.Byte[]
[double]                System.Double
[double[]]              System.Double[]
[decimal]               System.Decimal
[decimal[]]             System.Decimal[]
[float]                 System.Single
[single]                System.Single
[regex]                 System.Text.RegularExpression.Regex
[array]                 System.Array
[xml]                   System.Xml.XmlDocument
[scriptblock]           System.Management.Automation.ScriptBlock
[switch]                System.Management.Automation.SwitchParameter
[hashtable]             System.Collections.Hashtable
[psobject]              System.Management.Automation.PSObject
[type]                  System.Type
[type[]]                System.Type[]
7
ответ дан 30 November 2019 в 11:52
поделиться

@ У Нолдорина есть хороший список некоторых ускорителей типов.

PowerShell также позволяет использовать литералы типов для приведения объектов, вызова статических методов, доступа к статическим свойствам, отражения и всего остального, что вы могли бы сделать с экземпляром объекта System.Type.

Чтобы использовать литерал типа, вы просто заключаете полное имя (пространство имен и имя класса) класса (или структуры или перечисления) (с точкой, разделяющей пространство имен и имя класса) в квадратных скобках, например:

[System.Net.NetworkInformation.IPStatus]

PowerShell также предоставит начальный «Система». в его попытке разрешить имя, поэтому вам не нужно явно использовать это, если вы используете что-то в пространстве имен System *.

[Net.NetworkInformation.IPStatus]

Ойсин Грехан (PowerShell MVP) также имеет сообщение в блоге о создании ваших собственных ускорителей типов .

3
ответ дан 30 November 2019 в 11:52
поделиться

Окончательный способ - сделать то, что демонстрирует Oisin в этом отличном сообщении в блоге :

PS> $acceleratorsType = [type]::gettype("System.Management.Automation.TypeAccelerators")
PS> $acceleratorsType

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
False    False    TypeAccelerators                         System.Object


PS> $acceleratorsType::Add("accelerators", $acceleratorsType)
PS> [accelerators]::Get

Key                                                         Value
---                                                         -----
int                                                         System.Int32
...

Обратите внимание, что вам нужно добавить новый ускоритель «ускорители» в словарь, потому что тип TypeAccelerators не является общедоступным. Удивительно, что вы можете делать с .NET Reflector, и много свободного времени. :-) Ты рок Ойсин!

12
ответ дан 30 November 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: