Nay*_*iya 6 windows powershell
有没有办法控制Powershell类中成员的访问?就像我们在 C++ 或 C# 中所做的一样。我们如何在 Powershell 中编写下面的 C# 类
class Car
{
private string engine;
public string wheel_type;
public void drive()
{
}
private int change_engine(string new_engine)
{
}
}
Run Code Online (Sandbox Code Playgroud)
从 PowerShell 5.0 开始,PowerShell 添加了类支持。
请注意,PowerShell 不提供 private 关键字。但是,您可以使用 hide 关键字,默认情况下它将从智能感知中隐藏属性/方法(尽管可以强制显示),并且 Get -Member cmdlet 不会返回隐藏成员,除非-Force开关为用过的。
这是一个示例汽车类,它演示了所有内容。
enum Engine {
None
V4
V8
}
Class Car
{
static [int]$numberOfWheels = 4
[int]$numberOfDoors
[datetime]$year
[String]$model
[Engine]$Engine
car() {
#Constructor ... optional
}
car([Engine]$Engine,$numberofDoors = 4 ) {
#Constructor overload with default value... optional
$this.Engine = $Engine
$this.numberOfDoors = $numberofDoors
}
drive()
{
}
hidden [int] change_engine([string] $new_engine) {
return 0
}
}
# Call to static property
[Car]::numberOfWheels
#Create Car object
$MyCar = New-Object Car([Engine]::V4,4)
#Call drive
$MyCar.drive()
Run Code Online (Sandbox Code Playgroud)
参考