You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中能否将静态方法/属性保存为对象进行调用?

PowerShell 方法引用赋值实现方案

完全可以实现你要的效果,PowerShell 原生支持将方法引用直接赋值给变量,无需额外封装,静态方法、实例方法都适用。

你提到的字符串检测场景实现

直接赋值静态方法引用即可,后续调用变量传入目标参数就能运行:

# 赋值静态方法引用到变量
$test = [string]::IsNullOrWhiteSpace

# 两种调用方式都可用
# 方式1:用Invoke方法传参
$test.Invoke($null) # 输出 True
$test.Invoke("   ") # 输出 True
$test.Invoke("有效内容") # 输出 False

# 方式2:用调用运算符&,写法更简洁
& $test "" # 输出 True

通用用法说明

这种语法适用于所有.NET 方法,不局限于字符串相关的静态方法:

  • 实例方法也可以直接赋值引用,会自动绑定原有实例对象:
    $demoStr = "test content"
    $toUpperMethod = $demoStr.ToUpper
    & $toUpperMethod # 输出 TEST CONTENT
    
  • 存在多个重载的方法会自动根据传入的参数类型、数量匹配对应重载,逻辑和直接调用完整方法名完全一致
  • 如果需要固定部分参数,可以封装为匿名函数实现自定义逻辑:
    # 自定义检测逻辑:非空+长度大于3
    $customCheck = {
      param([string]$inputStr)
      return -not [string]::IsNullOrWhiteSpace($inputStr) -and $inputStr.Length -gt 3
    }
    
    & $customCheck "12" # 输出 False
    & $customCheck "1234" # 输出 True
    

内容的提问来源于stack exchange,提问作者immobile2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:48:05