gpt4 book ai didi

powershell - 使用循环创建对象的正确性

转载 作者:行者123 更新时间:2023-12-03 01:29:26 26 4
gpt4 key购买 nike

这样在循环中创建对象是否正确?我这样做,并且有效。但是也许我错了,还有一种更通俗的方法。谢谢。

0..10 | ForEach-Object {    

New-Variable "Button$_" -EA 0
(Get-Variable "Button$_").Value = New-Object System.Windows.Forms.Button

$Button = (Get-Variable "Button$_").Value
$Button.FlatStyle = 'Flat'
...
}


编辑。我的意思是这部分的正确性:
New-Variable "Button$_" -EA 0
(Get-Variable "Button$_").Value = New-Object System.Windows.Forms.Button

最佳答案

假设您确实要创建不同的变量$Button1$Button2,...,而不是将按钮对象存储在单个数组变量中:

New-Variable "Button$_" -EA 0
(Get-Variable "Button$_").Value = New-Object System.Windows.Forms.Button



可以,但是可以更简单,更高效地编写为:
Set-Variable "Button$_" (New-Object System.Windows.Forms.Button)

注意:此处并非严格需要 "..."周围的 Button$_,但可以使意图更清晰。

或者,在PSv5 +中:
Set-Variable "Button$_" ([System.Windows.Forms.Button]::new())

如果要同时获取对新创建的变量对象的引用,请使用 -PassThru:
$buttonVar = Set-Variable -PassThru "Button$_" ([System.Windows.Forms.Button]::new())
$buttonVar.Value.FlatStyle = 'Flat'

或者,您可以将按钮对象直接存储在aux中。具有固定名称的变量:
Set-Variable "Button$_" ($button = [System.Windows.Forms.Button]::new())
$button.FlatStyle = 'Flat'

请注意,变量赋值( $button = ...)如何成为构造函数表达式的一部分。

关于powershell - 使用循环创建对象的正确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59702254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com