揭开PowerShell对象一致,ToString()返回值不同的神秘面纱


上一篇文章中我们了解到ToString()可以大致地描述对象,作为对象的作者也可以决定通过ToString()的返回值,返回什么样的描述信息,但是到了PowerShell这个神奇的语言中以后,即使你不是对象的作者,你也可以改写ToString()方法。

PS> $a = 1
PS> $a | Add-Member -MemberType ScriptMethod -Name toString -Value { 'go away' } -Force 
PS> $a 
go away
PS> $a.GetType().FullName 
System.Int32
PS> $a -eq 1
True

上一篇文章中的FileInfo返回值不同的原因就是因为被改写了。被谁改写了吗?请参考PowerShell扩展类型配置

原文连接:Careful with ToString()

本文链接: https://www.pstips.net/6b5248.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注