PowerShell: 字面类型系统
一、PowerShell 通过一个字面类型(type Literals)来访问类型,它是用中括号括起的类型名,返回.NET底层的System.Type对象实例。
常用类型别名:
(1)int、short和long:分别参考System.Int32、System.Int16和Sytem.Int64类型。
(2)byte和sbyte:对应无符号的System.Int32和有符号的System.SByte类型。
(3)void:对应没有类型。
(4)string:对应System.String类型。
(5)float和single:对应System.Single而double对应于Sytem.Double类型。
(6)decimal:对应System.Decimal的类型。
(7)regex:对应System.Text.RegularExpressions.Regex。
(8)adsi:对应System.DirectoryServices.DirectoryEntry。
(9)wmi、wmiclass和wmisearcher:分别对应System.Management.
ManagementObject、System.Management.
ManagementClass和System.ManagementObjectSearcher。
可以通过如下命令来查找别名对应的.NET底层的System.Type对象实例:
PS C:\> ([string]).Fullname
System.String
如果不知道某个对象是什么类型,可以这样查找:
PS C:\> ([object[]] 5).GetType().FullName
System.Object[]
二、类型转换
在原始对象前面放置字面类型,通常字面类型会通知Shell完成对象类型的转换。如果正确,将返回一个新的对象。
三、 访问静态成员
字面类型可以用于访问静态属性和方法,为此使用双冒号(::)来分割字面类型和成员名。下例获取一个静态属性值:
PS C:\> [datetime]::Today
2008年12月16日 0:00:00
调用静态方法与此类似,下例调用Parse方法创建double对象:
PS C:\> [double]::Parse("2.5")
参考资料: