相关疑难解决方法(0)

是否可以覆盖PowerShell 5类中的Getter/Setter函数?

我最近开始用powershell 5创建类.当我关注这个很棒的指南时https://xainey.github.io/2016/powershell-classes-and-concepts/#methods

我想知道是否有可能覆盖get_xset_x方法.

例:

Class Foobar2 {
    [string]$Prop1    
}

$foo = [Foobar2]::new()
$foo | gm



Name        MemberType Definition                    
----        ---------- ----------                    
Equals      Method     bool Equals(System.Object obj)
GetHashCode Method     int GetHashCode()             
GetType     Method     type GetType()                
ToString    Method     string ToString()             
Prop1       Property   string Prop1 {get;set;}  
Run Code Online (Sandbox Code Playgroud)

我想这样做是因为我认为除了使用我的自定义GetSet方法之外,其他人访问属性会更容易:

Class Foobar {
    hidden [string]$Prop1

    [string] GetProp1() {
        return $this.Prop1
    }

    [void] SetProp1([String]$Prop1) {
        $this.Prop1 = $Prop1
    }
}
Run Code Online (Sandbox Code Playgroud)

powershell

9
推荐指数
3
解决办法
2446
查看次数

如何在PowerShell(> 5.0)类中创建只读属性

随着5.0版以来PowerShell类的引入,我想知道是否可以创建只读属性以及如何创建它.属性值从内部逻辑填充,用户可以读取但不设置它.

考虑以下代码来创建一个类,假设我想将属性"Year"设置为只读:

class Car {
    [string] $Maker;
    [string] $Model;
    [string] $Year;
    [int] $Odometer ;


    [void] Drive([int] $NbOfKM) { 
        $this.Odometer += $NbOfKM;  
     }

    Car(){
    }

    Car([int] $Odometer){
        $this.$Odometer = $Odometer;
    }
}
Run Code Online (Sandbox Code Playgroud)

powershell

4
推荐指数
2
解决办法
1925
查看次数

标签 统计

powershell ×2