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

PowerShell中为何字符串字面量调用System.String方法失败?

问题解答

你的问题核心是混淆了PowerShell中实例方法和静态方法的调用语法:

  • 你写的"ssz"::EndsWith("z")是在尝试以静态方法的语法调用字符串实例,但EndsWith、Substring都是System.String的实例方法,PowerShell会去查找[System.String]类的静态成员,自然找不到对应方法。
  • 而"ssz"|Get-Member默认显示的是实例成员,所以能看到这些方法存在。

正确调用方式

1. 实例方法调用(推荐)

直接用点语法调用实例方法,和C#的写法一致:

"ssz".EndsWith("z")  # 返回 True
"ssz".Substring(2,1) # 返回 "z"

2. 静态方法调用(仅针对有静态重载的方法)

System.String类部分方法有静态重载,比如EndsWith,可以这么调用(但实例调用更直观,一般不推荐):

[System.String]::EndsWith("ssz", "z") # 返回 True

总结:PowerShell里,实例方法用对象.方法(),静态方法用[类型]::方法(),别搞混两种语法即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:16:09