We all know PSH can output objects.  When the cmdlets or input give it objects to work with, outputting objects is easy.  However, when the program is dealing in strings and objects are required, things get long.

PS> $psobject = New-Object PSObject

PS> Add-Member -MemberType NoteProperty -InputObject $psobject -name "NotePropertyName1" -value "NoteProperty Value 1"

PS> Add-Member -MemberType NoteProperty -InputObject $psobject -name "NotePropertyName2" -value "NoteProperty Value 2"

and so on...

 It's actually pretty straightforward, but rather verbose.  How about this instead?

PS> Add-Member -InputObject $psobject-MemberType ScriptMethod -name AddNoteProperty -value { Add-Member -InputObject $this -MemberType NoteProperty -name $args[0] -value $args[1] }

PS> $psobject("NotePropertyName1", "NoteProperty Value1")

PS> $psobject("NotePropertyName2", "NoteProperty Value2")