Powershell如何创建委托

use*_*513 13 powershell

我并不熟悉powershell.我正在尝试做一些C#中的单行代码,但在powershell中它是一种痛苦:(

在下面的三行中,wow3抛出一个错误.任何人都知道为什么wow3抛出一个未找到类型的错误?委托的这种语法是否仅适用于内置类型?

$wow1 =[System.Action[int]]
$wow2 =[MyType]
$wow3 =[System.Action[MyType]]
Run Code Online (Sandbox Code Playgroud)

Kei*_*ill 34

这一系列的PowerShell:

$wow1 = [System.Action[int]]
Run Code Online (Sandbox Code Playgroud)

等于这行C#:

var d = typeof(System.Action<int>);
Run Code Online (Sandbox Code Playgroud)

也就是说,$wow1包含一个System.RuntimeType.这真的是你想要做的吗?

也许你想要这样的东西呢?

C:\PS> [Action[int]]$action = {param($i) Write-Host "i is $i"}
C:\PS> $action.Invoke(10)
i is 10
Run Code Online (Sandbox Code Playgroud)