【发布时间】:2016-11-01 13:13:22
【问题描述】:
我是一名 C# 程序员,我一直在(根据需要)断断续续地学习 powershell。关于在 powershell 中使用点和连字符之间的区别,我有几个(希望如此)快速的问题。
以数组为例。
$arr = @("sam", "mitch", "stan") #create array
$arr.Contains("sam") #contains, apparently .NET?
$arr -contains "sam" #contains, apparently PS?
“包含”调用之间有什么区别?
是什么导致 .Contains() 可用?我知道 .NET 数组有一个 .Contains 方法……这是一样的吗?是否因为公共访问器而可用? PS 是否只是“知道”什么是 .NET 数组?
是什么导致 -contains 符号可用?
有理由使用其中一个吗?
谢谢!
【问题讨论】:
-
哦,它只是一个运算符??我想这可以解释它!
-
确实如此。使用 .Contains 方法,你的钱是对的。
-
在Powershell中使用
func(a,b,c)语法调用函数时要小心:marcin-chwedczuk.github.io/… -
"PS 是否只知道 .Net 数组是什么" - PS 数组是 .Net 数组。
@(1,2,3).GetType()->Object[], basetype System.Array。但是 PowerShell 有一个 Adapted Type System (ATS) layer,它可以使用更方便的属性和方法来包装和扩展底层对象。@(1,2,3) | get-member -view adapted建议数组上的所有方法在 .Net 方法上都有一个 PS 自适应间接寻址,因为 .. 我不知道是什么原因(不区分大小写?)
标签: powershell