将参数传递给函数并使用它来引用属性

时间:2017-12-17 02:27:41

标签: function powershell parameters

是否可以将参数传递给函数并以某种方式使用它来引用对象的属性:

例如(似乎不起作用):

List<String> words = new ArrayList<>();
...
if (line.contains("Win")) {
   words.add(line);
}
...
String output = StringUtils.join(words, "\n");
jTextArea1.setText(output);

这似乎适用于exanple:

function Some-Function ($objectarray, $parameter)
{
    $result = $objectarray | ?{$_.$parameter -eq $true}
}

由于

2 个答案:

答案 0 :(得分:0)

您可以按名称访问对象属性。您几乎就在那里,您只需要返回结果以使其正常工作,例如:

function Some-Function ($objectarray, $parameter)
{
   $objectarray | ?{$_.$parameter -eq $false}
}

Some-Function (Get-Process) Responding

答案 1 :(得分:0)

Reza Aghaei's helpful answer提出了一个重要观点:您的原始函数缺少输出生成语句。

此外,在PSv3 +中,您可以使用比较语句隐式布尔逻辑来简化功能:

binding.your_textview.layoutParams.height = 0
binding.your_textview.requestLayout()

在评论中,您声明:

  

问题是在我返回单个对象时使用.Count

这应该只是 PSv2 中的一个问题 在 PSv3 + 任何值中,无论是标量还是集合 - 甚至function Some-Function ($objectarray, $property) { # short for: ? { $_.$property } or ? { $_.$property -eq $true } $objectArray | ? $property } - 都应该具有$null属性。

  • 不幸的是,从Windows PowerShell v5.1 / PowerShell Core v6.0.0-rc.2开始, 所有类型 所有类型:请参阅{{3 }}