powershell-类-在其自己的类中调用构造函数并返回它

时间:2018-09-26 14:11:56

标签: powershell class constructor

我试图在方法内部调用构造函数以创建一个新的并返回它。 不幸的是,它不起作用,也没有出现任何错误。 因为我习惯于其他语言,所以我做错了什么,但现在不知道该怎么做。 是否有人可以向我解释我做错了什么? 还是有另一种方式获取我需要的东西?

    cls

class Matrix {
    [int]$some_number

    Matrix(){
        Write-Host "No param's given"
    }

    Matrix($nr){
        $this.some_number = $nr
    }

    thins2do($thing){
        if ($thing.GetType().name -eq "Matrix"){
            #[Matrix]::New(3)
            $temp_matrix = [Matrix]::New(3)
            return $temp_matrix
        }Else{
            Write-Host "You are trying to do the wrong thing"
        }
    }
}

$matrix1 = [Matrix]::New(1)
$matrix1

$matrix2 = [Matrix]::New(2)
$matrix2

$matrix3 = $matrix1.thins2do($matrix2)
$matrix3

1 个答案:

答案 0 :(得分:0)

感谢2 @Jeroen Mostert ==>

    cls

class Matrix {
    [int]$some_number

    Matrix(){
        Write-Host "No param's given"
    }

    Matrix($nr){
        $this.some_number = $nr
    }

    [Matrix]thins2do([Matrix]$thing){
        $temp_matrix = [Matrix]::New(3)
        return $temp_matrix
    }

    [Matrix]thins2do([int]$thing){
        $temp_matrix = [Matrix]::New(4)
        return $temp_matrix
    }
}

$matrix1 = [Matrix]::New(1)
$matrix1

$matrix2 = [Matrix]::New(2)
$matrix2

$matrix3 = $matrix1.thins2do($matrix2)
$matrix3

$matrix4 = $matrix1.thins2do(2)
$matrix4