customobject和psobject之间的区别?

customobject和psobject之间的区别?,object,powershell,Object,Powershell,这是一个简单的问题,比任何理论都重要 Powershell中自定义对象和PSObject的真正区别是什么? 为什么以及何时创建它们 谢谢 PSObject用作PowerShell中所有对象的包装器对象。这包括自定义对象。如果创建PSCustomObject,实际上就是在幕后创建PSObject。PSCustomObject随PowerShell 3.0一起提供。我将其定义为PSObject的“改进版”,因为它解决了PSObject的一些问题,包括显示顺序(PSCustomObject保持您指定的

这是一个简单的问题,比任何理论都重要

Powershell中自定义对象和PSObject的真正区别是什么? 为什么以及何时创建它们


谢谢

PSObject用作PowerShell中所有对象的包装器对象。这包括自定义对象。如果创建PSCustomObject,实际上就是在幕后创建PSObject。

PSCustomObject随PowerShell 3.0一起提供。我将其定义为PSObject的“改进版”,因为它解决了PSObject的一些问题,包括显示顺序(PSCustomObject保持您指定的顺序)、一些性能增强


下面是关于这一点的详细讨论。

将哈希表强制转换为PSCustomObject时,也有一个不同之处,即创建一个自定义对象,其中每个键/值对都成为属性/值对。将哈希表强制转换为PSObject是不可行的。V3中引入了一些语法快捷方式,但V2中有PSCustomObject。如果您尝试:(new object PSObject).GetType().FullName,您将在V2和V3中看到相同的东西-它是PSCustomObject。感谢@JasonShirk指出这一点。当我说新的[PSCustomObject]“accelerator”和[PSObject]的v2版本在v3中出现时,我假设问题是关于它的。