VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
PowerShellでは関数の引数に値渡しと参照渡しを使用することができます。
(注:ここでは値渡しと参照渡しの違いについては説明いたしません)
まずは値渡しの例です。(sample1)
まず test1を作成します。引数は$x1つとします。
test1という関数では受け取った$xを強制的に3に書き換えています。
最初に$xに1を代入します。(1)
関数 test1に$xを渡します。(2)
このとき関数内部では受け取った値を3に書き換えます
関数実行後の$xを確認します(3)
値渡しなので$xは(1)でセットした"1"を保持していいることがわかります。
しかし値渡しなので、関数を実行した後でも関数実行前の値を保持していることがわかります。
sample1PS C:\Work> function test1 ($x) |
次に参照渡しの例です。(sample2)
sample1を参照渡し変更したtest2という関数を作成してみます。
参照渡しをするには、引数の前に[ref]を付けます。
また、関数内部では参照渡しで受け取った値は
$変数名.value
として使用しなければならないことに注意してください。
最初に$xに1を代入します。(1)
関数 test2に$xを渡します。(2)
このとき関数内部では受け取った値を3に書き換えます
関数実行後の$xを確認します(3)
参照渡しなので$xは(2)で書き換えられた"3"になっていることがわかります。
注意)参照渡しの関数の呼び出しは、([ref]$変数名)という形で引数を渡す必要があります。
しかし値渡しなので、関数を実行した後でも関数実行前の値を保持していることがわかります。
sample2PS C:\Work> function test2 ([ref]$x) |