如何在Powershell中进行类型转换

如何在Powershell中进行类型转换,powershell,Powershell,这只会给我空值-即使是$mytypeObject也是一个[Object]分配了[MyType]对象?通常是 function Get-MyClass { return [MyClass]::new() # return New-Object MyClass() } ... [Object]$myclassObject = Get-MyClass [MyClass]$myclass = $myclassObject -as [MyClass] -与此类似,但它更可编程:

这只会给我空值-即使是
$mytypeObject
也是一个
[Object]
分配了
[MyType]
对象?

通常是

function Get-MyClass {    
    return [MyClass]::new()
    # return New-Object MyClass()
}

...
[Object]$myclassObject = Get-MyClass
[MyClass]$myclass = $myclassObject -as [MyClass]
-与此类似,但它更可编程:

$a = [datetime]'1/1'
在左侧,它还将该变量限制为该类型,即使它被重新分配:

$type = 'datetime'
$a = '1/1' -as $type

删除(
-as[MyType]
)时会发生什么?你能告诉我们你是如何创建/实例化
$mytypeObject
的吗?谢谢,刚刚更新了问题为什么不
$myClass=[myClass]$myClassObject
?如果我定义一个类
类myClass{}
并运行你的代码,我就无法重现所提供代码描述的行为,
$myclass
[myclass]
的一个实例,正如预期的那样hanks@MathiasR.Jessen我将尝试重组
[datetime]$a = '1/1'
$a = 1