在現(xiàn)實世界中,你可能已經(jīng)了解對象就是那些能夠摸到的東西。Powershell中的對象和現(xiàn)實生活很相似。例如要在現(xiàn)實生活中描述一把小刀。我們可能會分兩方面描述它
屬性:一把小刀擁有一些特殊的屬性,比如它的顏色、制造商、大小、刀片數(shù)。這個對象是紅色的,重55克,有3個刀片,ABC公司生產(chǎn)的。因此屬性描述了一個對象是什么。
方法:可以使用這個對象做什么,比如切東西、當(dāng)螺絲釘用、開啤酒蓋。一個對象能干什么就屬于這個對象的方法。
創(chuàng)建對象
通過New-Object可以創(chuàng)建一個對象,甚至可以創(chuàng)建一個虛擬的小刀,但是第一步需要創(chuàng)建一個空對象。空對象什么都沒有,如果調(diào)用它,不會返回任何東西。
代碼如下:
PS C:Powershell> $pocketknife=New-Object object
PS C:Powershell> $pocketknife
System.Object
增加屬性
接下來描述這個對象是什么
代碼如下:
PS C:Powershell> Add-Member -InputObject $pocketknife -Name Color -Value "Red"
-MemberType NoteProperty
PS C:Powershell> $pocketknife
Color
-----
Red
PS C:Powershell> Add-Member -InputObject $pocketknife -Name Weight -Value "55"
-MemberType NoteProperty
PS C:Powershell> $pocketknife | Add-Member NoteProperty Blades 3
PS C:Powershell> $pocketknife | Add-Member NoteProperty Manufacturer ABC
PS C:Powershell> $pocketknife
Color Weight Blades Manufacturer
----- ------ ------ ------------
Red 55 3 ABC
增加方法
給一個對象增加了屬性后,這個對象就有形狀了,但是它仍然不能做任何事,要想它做事,必須給它增加方法。同樣使用Add-Member,不過-memberType 選項使用ScriptMethod。
代碼如下:
# 增加一個新方法:
Add-Member -memberType ScriptMethod -In $pocketknife `
-name cut -Value { "I'm whittling now" }
# 指定參數(shù)類型增加一個新方法:
Add-Member -in $pocketknife ScriptMethod screw { "Phew...it's in!" }
#直接通過管道增加一個新方法:
$pocketknife | Add-Member ScriptMethod corkscrew { "Pop! Cheers!" }
方法添加成功后就可以調(diào)用了
代碼如下:
PS C:Powershell> $pocketknife.cut()
I'm whittling now
PS C:Powershell> $pocketknife.screw()
Phew...it's in!
PS C:Powershell> $pocketknife.corkscrew()
Pop! Cheers!
在調(diào)用方法時如果沒有使用圓括號,方法不會執(zhí)行,但是可以返回方法的基本信息。
代碼如下:
PS C:Powershell> $pocketknife.corkscrew
Script : "Pop! Cheers!"
OverloadDefinitions : {System.Object corkscrew();}
新聞熱點
疑難解答
圖片精選