文字列の配列に対してStringクラスのメソッドが呼べるのはなぜ?
PowerShellでは文字列の配列に対して String クラスのメソッド、例えば Replace()
などが呼び出せるようですが、これはどういう仕様によるものなのでしょうか?
PS C:\> $arr = "abc","abc"
PS C:\> $arr
abc
abc
PS C:\> $arr.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\> $arr.Replace('b', '_')
a_c
a_c
GetType()
で型を取得してもただの Object[]
ですし、Get-Member で見てもこのメソッドは存在しません。Count のようにエイリアスが追加されているというわけでもないようです。