具有预定义属性的对象实例化
Object instantiation with predefined properties
我正在研究mailkit库,我在c#的一行中发现了这样一个结构
msg.Body = new TextPart("html") { Text = "<b>html content</b>" };
在 Powershell 上我最多可以做三行
$TextPart = [MimeKit.TextPart]::new("html")
$TextPart.Text = "<b>html content</b>"
$msg.Body = $TextPart
是否可以在 powershell 中也将其写在一行中?
也可以在 PowerShell 中对此进行简化
$msg.Body = New-Object MimeKit.TextPart -ArgumentList 'html' -Property @{Text = '<b>html content</b>' }
New-Object 的 -属性 参数将接受 属性 names:property 值的哈希表,您可以在其中指定任意数量的属性。
要将 with a more convenient PSv3+ alternative, where you can cast a hashtable @{ ... }
或自定义对象 ([pscustomobject] @{ ... }
) 补充到目标类型:
[MimeKit.TextPart] @{ Text = '<b>html content</b>' }
参见 for a comprehensive discussion of the prerequisites for and constraints on this technique (equally applies to use of New-Object
)。
我正在研究mailkit库,我在c#的一行中发现了这样一个结构
msg.Body = new TextPart("html") { Text = "<b>html content</b>" };
在 Powershell 上我最多可以做三行
$TextPart = [MimeKit.TextPart]::new("html")
$TextPart.Text = "<b>html content</b>"
$msg.Body = $TextPart
是否可以在 powershell 中也将其写在一行中?
也可以在 PowerShell 中对此进行简化
$msg.Body = New-Object MimeKit.TextPart -ArgumentList 'html' -Property @{Text = '<b>html content</b>' }
New-Object 的 -属性 参数将接受 属性 names:property 值的哈希表,您可以在其中指定任意数量的属性。
要将 @{ ... }
或自定义对象 ([pscustomobject] @{ ... }
) 补充到目标类型:
[MimeKit.TextPart] @{ Text = '<b>html content</b>' }
参见 New-Object
)。