Структуры или объекты в Powershell 2

Попробуйте это

final Size size = controller.value.size;
return ClipRect(
  child: OverflowBox(
    maxWidth: double.infinity,
    maxHeight: double.infinity,
    alignment: Alignment.center,
    child: FittedBox(
      fit: BoxFit.cover,
      alignment: Alignment.center,
      child: new Container(
        width: size.width,
        height: size.height,
        child: CameraPreview(controller)
      )
    )
  )
);
9
задан JPBlanc 12 May 2011 в 05:05
поделиться

5 ответов

Синтаксис непосредственно не поддерживается функциональностью, там через cmdlet's добавлять-участника. Некоторое время назад я перенес эту функциональность в функцию кортежа общего назначения.

Это даст Вам, способность к одной строке создает эти объекты.

$point = New-Tuple "x",12,"y",50

Вот код для Нового Кортежа

function New-Tuple()
{
    param ( [object[]]$list= $(throw "Please specify the list of names and values") )

    $tuple = new-object psobject
    for ( $i= 0 ; $i -lt $list.Length; $i = $i+2)
    {
        $name = [string]($list[$i])
        $value = $list[$i+1]
        $tuple | add-member NoteProperty $name $value
    }

    return $tuple
} 

Сообщение в блоге на предмете: http://blogs.msdn.com/jaredpar/archive/2007/11/29/tuples-in-powershell.aspx#comments

13
ответ дан 4 December 2019 в 06:35
поделиться

Можно сделать это как это:

$point = New-Object Object |
    Add-Member NoteProperty x ([int] 12) -passThru |
    Add-Member NoteProperty y ([int] 15) -passThru

Относительно одного из Ваших комментариев в другом месте, пользовательские объекты могут быть более полезными, чем хеш-таблицы, потому что они работают лучше с cmdlets, которые ожидают объекты назвать свойства. Например:

$mypoints | Sort-Object y   # mypoints sorted by y-value
3
ответ дан 4 December 2019 в 06:35
поделиться
3
ответ дан 4 December 2019 в 06:35
поделиться

Извините, даже при том, что выбранный ответ хорош, я не мог сопротивляться hacky один ответ строки:

New-Object PsObject | Select-Object x,y | %{$_.x = 12; $_.y = 50; $foo = $_; }
5
ответ дан 4 December 2019 в 06:35
поделиться

Для простых способов, во-первых, это хеш-таблица (доступная в V1)

$obj = @{}
$obj.x = 1
$obj.y = 2

Во-вторых, это объект PSObject (проще в V2)

$obj = new-object psobject -property @{x = 1; y =2}

Он дает вам примерно тот же объект, но псобъекты лучше, если вы хотите их сортировать / группировать / форматировать / экспортировать

12
ответ дан 4 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: