为什么PowerShell中执行(get-date).Today无法获取到日期信息?
核心问题原因
- 静态成员属于类型本身,不属于该类型的实例对象。
Get-Date返回的是System.DateTime类型的实例,而Today、Now、UtcNow都属于DateTime类型的静态属性,默认无法通过实例的.操作符访问:你执行(get-date).today时,PowerShell只会检索该实例的实例属性列表,找不到对应成员自然没有输出。 Get-Member -Static的返回结果是管道内实例所属类型的静态成员,而非该实例本身持有的成员,不要混淆两者的从属关系。
补充语法说明
如果你需要通过实例调用其所属类型的静态成员,可以使用静态成员操作符::,如下写法也可以正常返回结果:
(get-date)::Today
不过该写法没有实际必要,直接使用[datetime]::Today调用类型静态成员的写法更规范,可读性更高。
内容的提问来源于stack exchange,提问作者Wizard
相关产品推荐
相关产品推荐

