从C#转换为Powershell语法

Col*_*nic 3 powershell

在C#中我可以使用该方法Console.Error.WriteLine.这在Powershell中不起作用,而是我必须写

[Console]::Error.WriteLine
Run Code Online (Sandbox Code Playgroud)

为什么方括号,为什么双冒号?

PS.要清楚,我对日志记录不感兴趣,我想了解有关类型,对象和方法的语法

Céd*_*Rup 10

括号=访问类型

double colons =访问类型的静态成员:[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
Run Code Online (Sandbox Code Playgroud)

so ::是访问Class的静态成员的方法

c:\> [System.Int32]::Parse("3")
3
Run Code Online (Sandbox Code Playgroud)


gor*_*ric 5

方括号[]是Powershell表示类型的方式.双冒号::表示该类型的静态成员或方法,其中正常句点.表示实例成员或方法.

请注意,这些受其他.NET语言的影响 - C#使用.for all成员访问,C++使用::for名称空间,子类和静态调用.