首页 > 解决方案 > powershell - 类 - 在它自己的类中调用构造函数并返回它

问题描述

我试图在一个方法中调用构造函数来创建一个新的并返回它。不幸的是,它不起作用,也没有任何错误。因为我习惯了其他语言,所以我做错了,但现在不做。有没有人可以向我解释我做错了什么?还是有其他方法可以得到我需要的东西?

    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

标签: powershellclassconstructor

解决方案


谢谢 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

推荐阅读