その1 ~ その4 の説明で、PowerShell Class の基本的な事について説明はほぼ終わりなので、今回はスコープについて整理をしておきます。
(文中で、「内部データ/データ」と「プロパティ」の2つの言葉が出てきますが、文脈によって使い分けているだけで同じ意味です)
これを書いている PowerSell 5 のクラスでは実装されていないのですが、今後実装されるであろう大切なことについてまずは説明しておきます。
オブジェクト指向言語では、プロパティやメソッドに対し Class の外からのアクセス制限する機能があります。
これは、Class の独立性を高めるために内部だけで使用したいデータやメソッドを隠蔽したり、プロパティして値だけは読み取って良いよと class の外からは Read Only でアクセスできるようにする機能です。
static はアクセス制限とは少し毛色が違いますが、ここで併せて整理しましょう。
アクセス制限 | プロパティ | メソッド | PowerShell 5 でのサポート |
public | Class 外から RW 可能 | Class 外から使用可能 | 〇 |
protected | Class 内と継承先だけ RW 可能, クラス外からは RO のみ | Class 内と継承先だけ使用可能 | × |
private | Class 内 だけ RW 可能 | Class 内だけ使用可能 | × |
static | インスタンス間共有 | インスタンス化しなくても使用可能 | 〇 |
このように、PowerShell 5 では public しかアクセス制限が実装されていないので、class の外部からのプロパティやメソッドへのアクセスを術が現状ありません。
今後のバージョンでサポートされると思います。
クラスを含めた PowerShell の標準スコープはこんな感じです。
|
超簡単な 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 の使い方(その3/static)
http://www.vwnet.jp/Windows/PowerShell/2017082201/PSv5Class03.htm
超簡単な PowerShell Class の使い方(その4/継承)
http://www.vwnet.jp/Windows/PowerShell/2017082301/PSv5Class04.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.