その1、その2で PowerShell class の超基本的な事を説明してきたので、少し高度(?)なことを説明します。
今回説明するのが「static」指定子です。
class で static を使うと静的な存在になり、今まで説明した事とちょっと違った動きをするようになります。
(文中で、「内部データ/データ」と「プロパティ」の2つの言葉が出てきますが、文脈によって使い分けているだけで同じ意味です)
メソッドに static 指定子を付けると、インスタンス化しなくても使用できるメソッドになります。
[D:\temp\test21.ps1]
|
これを実行するとこのようになります。
PS D:\> D:\temp\test21.ps1
ff
PS D:\>
|
.NET Framework を使う時に似てますね。
変数に static 指定子を付けると、インスタンス化されたオブジェクト間で共有される変数になります。
[D:\temp\test22.ps1]
|
PS D:\> D:\temp\test22.ps1
インスタンス化
通常内部データを操作するメソッド実行(10)
10
static な内部データを操作するメソッド実行(15)
15
もう一つインスタンス化
通常内部データを操作するメソッド実行(10)
10
static な内部データを操作するメソッド実行(15)
30
PS D:\>
|
$TestObjectA で更新された static 変数が、$TestObjectB に共有されているのがわかりますね。
static 内部変数は、通常内部変数と同様に class 外部からアクセスすることが可能です。
|
どう使うかはアイディア次第ってところでしょうか。
超簡単な PowerShell Class の使い方(その1)
http://www.vwnet.jp/Windows/PowerShell/2017082001/PSv5Class01.htm
超簡単な PowerShell Class の使い方(その2/オーバーロード)
http://www.vwnet.jp/Windows/PowerShell/2017082101/PSv5Class02.htm
超簡単な PowerShell Class の使い方(その4/継承)
http://www.vwnet.jp/Windows/PowerShell/2017082301/PSv5Class04.htm
超簡単な PowerShell Class の使い方(その5/スコープ)
http://www.vwnet.jp/Windows/PowerShell/2017082302/PSv5Class05.htm
超簡単な PowerShell Class の使い方(その6/まとめ)
http://www.vwnet.jp/Windows/PowerShell/2017082401/PSv5Class06.htm
PowerShell Class
http://www.vwnet.jp/Windows/etc.asp#PowerShell_Class
PowerShell クラスを使用したカスタム型の作成Creating Custom Types using
PowerShell Classes | Microsoft Docs
https://docs.microsoft.com/ja-jp/powershell/scripting/windows-powershell/wmf/whats-new/class-overview?WT.mc_id=WD-MVP-36880
Copyright © MURA All rights reserved.