微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有预定义属性的对象实例化

如何解决具有预定义属性的对象实例化

我正在研究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 的 -Property 参数将接受属性名称的哈希表:属性值,您可以在其中指定任意数量的属性。

,

用更方便的 PSv3+ 替代方案补充 Daniel's helpful answer,您可以在其中投射一个 hashtable @{ ... } 或自定义对象( [pscustomobject] @{ ... }) 到目标类型:

[MimeKit.TextPart] @{ Text = '<b>html content</b>' }

有关此技术的先决条件和限制条件的全面讨论,请参阅 this answer(同样适用于 New-Object 的使用)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。