PowerShell 控制台3D图形

PowerShell 5.0定义类 3


前一段时间在看微软的Typescript能把TS中的Class和Interface转换成Javascript,我当时就想能不能写一个PowerShell扩展,让PowerShell中可以定义类,经过简单编译转换成PSCustomObject,但是由于能力有限不知如何入手,未曾想到了PowerShell 5.0 中,微软直接从产品级提供了支持。爱就一个字:“酷”。
换做以前,我们会使用PSCustomObject,或者哈希表。尽管PSCustomObject也可以添加属性和方法,但是毕竟显得不伦不类,并且类型都为PSCustomObject,没有一个具体的名称,稍显别扭。
本文演示如何使用PowerShell 5.0中的新特性来自定义类:

class Point 
{ 
    ## 使用PowerShell正常的变量语法来定义两个属性,
    ## 你也可以限制变量的属性。
    ## 使用正常的类型限制符: 
    ## [type] $VarName = initialValue 
    $X = 0 
    $Y = 0 
    ## 定义一个方法(返回值为Void)
    ## 定义两个参数, 
    ## 当然你可以给参数添加类型
    [void] Move($xOffset, $yOffset) 
    { 
        $X += $xOffset 
        $Y += $yOffset 
    } 
} 
## 创建一个Point 类型,并调用方法
$point = [Point]::new() 
$point.Move(10, 20) 
$point

调用时,输出结果为:

PS> c:\temp\point.ps1 | Format-Table -Auto                                                                      
                                                                                                                        
 X  Y                                                                                                                   
 -  -                                                                                                                   
10 20

别看只定义了一个会移动的点(Point),一生二,二生三,三可以生万物。接下来我们掀起一段小高潮:

PowerShell 控制台3D图形

PowerShell 控制台3D图形

声明:本文示例代码和sh’g图片来自Lee Holmes的博文Playing with Classes in PowerShell v5 Preview。

本文链接: https://www.pstips.net/play-class-in-powershell-v5.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

回复 shengxu 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

3 条评论 “PowerShell 5.0定义类