How to use PowerShell Get-Member cmdlet

后端 未结 4 461
[愿得一人]
[愿得一人] 2020-12-15 22:52

A newbie question:

The command:

[Math] | Get-Member

Returns all members of System.RuntimeType. Why is that?

Al

4条回答
  •  伪装坚强ぢ
    2020-12-15 23:21

    You are getting a System.RuntimeType from [Math] because that is what it is. It's a Class type as opposed to an object of that particular type. You haven't actually constructed a [Math] object. You will get the same output if you typed:

    [String] | gm
    

    However, if you constructed a string object from the String type, you would get the string members:

    PS C:\> [String]("hi") | gm
    
    
       TypeName: System.String
    
    Name             MemberType            Definition
    ----             ----------            ----------
    Clone            Method                System.Object Clone()
    CompareTo        Method                System.Int32 CompareTo(Object value), System.Int32 CompareTo(String strB)
    Contains         Method                System.Boolean Contains(String value)
    CopyTo           Method                System.Void CopyTo(Int32 sourceIndex, Char[] destination, Int32 destinationIn...
    etc...
    

    Since System.Math has only static members, you can't construct an object of it. To see it's members you can use the GetMembers() function of System.RuntimeType:

    [Math].GetMethods()
    

    You can use one of the format-* cmdlets to format the output:

    [Math].GetMethods() | format-table
    

    Edit: Oh, and I should add, to invoke one of the static members, you would do it like this:

    [Math]::Cos(1.5)
    

提交回复
热议问题