Powershell 两种方法的数据类型差异
如果我声明这样的数据类型:Powershell 两种方法的数据类型差异,powershell,types,Powershell,Types,如果我声明这样的数据类型: addtype-TypeDefinition“公共类MyTest{}” 然后创建一个对象并获取它的数据类型,我得到MyTest,正如我所期望的: (新对象MyTest).GetType().Name 但是如果我直接提到类型 [MyTest].GetType().Name 我得到RuntimeType。有人能解释一下这里发生了什么吗?这与添加类型cmdlet无关;它适用于所有PowerShell类型: PS>(1).GetType().Name Int32 PS>
addtype-TypeDefinition“公共类MyTest{}”
然后创建一个对象并获取它的数据类型,我得到MyTest
,正如我所期望的:
(新对象MyTest).GetType().Name
但是如果我直接提到类型
[MyTest].GetType().Name
我得到
RuntimeType
。有人能解释一下这里发生了什么吗?这与添加类型
cmdlet无关;它适用于所有PowerShell类型:
PS>(1).GetType().Name
Int32
PS>[int].GetType().Name
运行时类型
像(newobjectmytest)
和1
之类的东西都是特定类型的实例。对它们调用.GetType()
,将返回这些实例的类型
但是,类似于[MyTest]
和[int]
的内容是RuntimeType
类的实例,该类表示所有PowerShell运行时类型(在[…]
中)。这就是为什么[MyTest].GetType().Name
返回RuntimeType
。您基本上得到的是MyTest
类本身的类型,而不是它的实例
以下是视觉细分:
newobjectmytest#MyTest实例
[MyTest]#RuntimeType实例
1#整数实例
[int]#RuntimeType实例
哦。。。我明白了。因此[int]与(1)相同