晚上的人,只是一個小問題,如果它有可能。
我知道我可以通過將其稱為空物件然后一一添加屬性來做到這一點。
$Obj = New-Object PSObject
$Obj.name = “hello”
$Obj.type = $Obj.name ‘ ’ “world”
有沒有辦法將其作為一條財產線?
$Obj = New-Object PSObject -Property @{
Name = “hello”
Type = $Obj.name ‘ ’ “world”
}
uj5u.com熱心網友回復:
這可能會幫助您使用PowerShellclass完成您正在尋找的內容:
- 定義
class SomeClass {
[string] $Name
[string] $Type
SomeClass() { }
SomeClass([string] $Name, [string] $Type) {
# ctor for custom Type
$this.Name = $Name
$this.Type = $Type
}
static [SomeClass] op_Explicit([string] $Name) {
# explicit cast using only `Name`
return [SomeClass]::new($Name, $Name 'World')
}
}
現在您可以使用自定義值進行實體化Type:
PS ..\> [SomeClass]@{ Name = 'hello'; Type = 'myCustomType' }
Name Type
---- ----
hello myCustomType
或者讓顯式運算子Type根據引數處理屬性的預定義值Name:
PS ..\> [SomeClass] 'hello'
Name Type
---- ----
hello helloWorld
uj5u.com熱心網友回復:
Santiago Squarzon 的有用答案class展示了如何通過定義創建專用 .NET 型別的 來解決您的問題。
但是,您可以避免使用以下解決方法創建專用的 .NET 類,該解決方法使用輔助變數,并且包含變數賦值的事實通過(...)以下方式傳遞賦值的值:
$obj = [pscustomobject] @{
Name = ($name = 'hello') # assign 'hello' to $name and pass the value through
Type = $name 'world' # use the value assigned to $name above
}
注意:這依賴于屬性定義的順序:派生的屬性值必須放在aux . 變數被定義。
輸出$obj到顯示幕列印:
Name Type
---- ----
hello helloworld
也可以看看:
- GitHub 問題 #13782,它要求一種內置機制,用于在內部交叉參考哈希表的條目,這同樣適用于自定義物件文字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/512801.html
標籤:电源外壳目的哈希表
