Доступ к полю из вызова функции без промежуточной переменной - PullRequest
0 голосов
/ 09 января 2020

Скажем, у меня есть следующий код powershell:

function GetImageInfo()
{
    [OutputType([ImageInfo])]

    [ImageInfo] $imageInfo = [ImageInfo]::new()
    $imageInfo.Owner = "Me"
    $imageInfo.PrimaryTechnology = "jpeg"
    $imageInfo.OperatingSystem = "Windows"
    $imageInfo.OperatingSystemVersion = "10"    

    return $imageInfo   
}

class ImageInfo
{
    [string] $Owner
    [string] $PrimaryTechnology
    [string] $OperatingSystem
    [string] $OperatingSystemVersion
    [string[]] $OptionalQualifiers
}

Теперь я хочу вызвать GetImageInfo и поместить значение Owner в переменную.

Я могу это сделать как это:

$info = GetImageInfo
$owner = $imageInfo.Owner

Но я был удивлен, что это не работает:

# Throws an error
$owner = GetImageInfo.Owner

Для того, что я делаю сейчас, более короткий вариант был бы хорош.

Есть ли способ получить поле непосредственно из вызова метода в PowerShell?

1 Ответ

1 голос
/ 09 января 2020

Вам нужно заключить вызов функции в круглые скобки. Это позволяет разрешить выводу команды участвовать в выражении :

$owner = (GetImageInfo).Owner
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...