在 C# 中,我可以使用方法Console.Error.WriteLine
. 这在 Powershell 中不起作用,而是我必须写
[Console]::Error.WriteLine
为什么是方括号,为什么是双冒号?
附言。需要明确的是,我对日志记录不感兴趣,我想了解有关类型、对象和方法的语法
在 C# 中,我可以使用方法Console.Error.WriteLine
. 这在 Powershell 中不起作用,而是我必须写
[Console]::Error.WriteLine
为什么是方括号,为什么是双冒号?
附言。需要明确的是,我对日志记录不感兴趣,我想了解有关类型、对象和方法的语法
方括号 = 访问类型
双冒号 = 访问类型的静态成员:[MyType] 返回一个 Type 实例
前任:
c:> [System.Int32]
IsPublic IsSerial 名称 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
所以 :: 是访问类的静态成员的方式
c:\> [System.Int32]::Parse("3")
3
方括号[]
是 Powershell 表示类型的方式。双冒号::
表示该类型的静态成员或方法,其中正常句点.
表示实例成员或方法。
请注意,这些受到其他 .NET 语言的影响 - C# 使用.
用于所有成员访问,而 C++ 使用::
用于命名空间、子类和静态调用。