3

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

[Console]::Error.WriteLine

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

附言。需要明确的是,我对日志记录不感兴趣,我想了解有关类型、对象和方法的语法

4

3 回答 3

10

方括号 = 访问类型

双冒号 = 访问类型的静态成员:[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
于 2012-05-18T13:26:32.240 回答
5

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

请注意,这些受到其他 .NET 语言的影响 - C# 使用.用于所有成员访问,而 C++ 使用::用于命名空间、子类和静态调用。

于 2012-05-18T13:30:36.730 回答
0

在这里观看 - http://www.youtube.com/watch?feature=player_detailpage&v=jpswk-4ykcc

于 2012-05-18T16:05:23.737 回答