在C#中,我可以使用方法Console.Error.WriteLine
。在PowerShell中这种方法不可用,相反我必须编写:
[Console]::Error.WriteLine
为什么要使用方括号和双冒号?
ps. 明确一点,我对日志记录不感兴趣,我想了解类型、对象和方法的语法。
在C#中,我可以使用方法Console.Error.WriteLine
。在PowerShell中这种方法不可用,相反我必须编写:
[Console]::Error.WriteLine
为什么要使用方括号和双冒号?
ps. 明确一点,我对日志记录不感兴趣,我想了解类型、对象和方法的语法。
方括号 = 访问类型
双冒号 = 访问类型的静态成员 : [MyType] 返回一个 Type 实例
例如:
c:> [System.Int32]
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
使用点符号只能让你访问 Type 实例的实例成员 (大多是反射相关的方法)...
c:\> [System.Int32].Parse("3")
Method call failed because [System.Runtype] does not have any "Parse" member
c:\> [System.Int32].AssemblyQualifiedName
System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
so::是访问类的静态成员的方法。
c:\> [System.Int32]::Parse("3")
3
[]
是PowerShell表示类型的方法。双冒号::
表示该类型的静态成员或方法,而正常的句点.
表示实例成员或方法。.
进行所有成员访问,而C++则使用::
用于命名空间、子类和静态调用。