前一段时间在看微软的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),一生二,二生三,三可以生万物。接下来我们掀起一段小高潮:
声明:本文示例代码和sh’g图片来自Lee Holmes的博文Playing with Classes in PowerShell v5 Preview。
本文链接: https://www.pstips.net/play-class-in-powershell-v5.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
这样挺好的,那个旋转的图形脚本下载地址有吗?
终于来Class了,Add-Member快吐了
同求3D图形代码