use*_*974 1 powershell casting class
一旦我在 PowerShell 中编写了自己的自定义类(比方说,MyAwesomeClass),我如何将对象转换为它?我的意思是,鉴于我有一个合适的构造函数,下面的语句是可以的
$var = [MyAwesomeClass]::new($anObject)
Run Code Online (Sandbox Code Playgroud)
但下面这个不起作用
$var = [MyAwesomeClass]$anObject
Run Code Online (Sandbox Code Playgroud)
我怎样才能做这个演员?
如果您的类定义包含一个构造函数,该构造函数恰好采用任何类型之一$anObject作为参数,则强制转换[MyAwesomeClass]将成功:
class MyAwesomeClass
{
[object[]]$Array
MyAwesomeClass([object[]]$array)
{
$this.Array = $array
}
# ...
}
# This will now work, assuming `$anObject` is an array
[MyAwesomeClass]$anObject
Run Code Online (Sandbox Code Playgroud)
或者,从源类型实现隐式转换:
class MyAwesomeClass
{
[object[]]$Array
hidden static
[MyAwesomeClass] op_Implicit([object[]]$array){
$newInstance = [MyAwesomeClass]::new()
$newInstance.Array = $array
return $newInstance
}
# ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |