在C#中,我可以使用方法Console.Error.WriteLine
。这并不在PowerShell中工作,而不是我必须写从C#转换为Powershell语法
[Console]::Error.WriteLine
为什么方括号,为什么双冒号?
ps。需要明确的是,我不感兴趣的记录,我想了解有关类型和对象和方法的语法
在C#中,我可以使用方法Console.Error.WriteLine
。这并不在PowerShell中工作,而不是我必须写从C#转换为Powershell语法
[Console]::Error.WriteLine
为什么方括号,为什么双冒号?
ps。需要明确的是,我不感兴趣的记录,我想了解有关类型和对象和方法的语法
支架=访问类型
双冒号=访问类型的静态成员: [的MyType]返回类型实例
例如:
C:> [System.Int32]
IsPublic IsSerial名称碱基类型
使用点-------- -------- ---- --------
真真的Int32 System.ValueType
符号只会给你访问类型实例(对于大多数反射相关的方法)的实例成员...
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++对名称空间,子类和静态调用使用::
。
这一直是滑稽的语法功能的挑战。你不能Google(很容易)! – derekerdmann