国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PowerShell > 正文

PowerShell函數(shù)實現(xiàn)類似重載功能實例

2020-05-30 20:11:42
字體:
來源:轉載
供稿:網(wǎng)友

本文介紹PowerShell自定義函數(shù)是否支持重載,如果支持,如何重載?如果不支持,如何實現(xiàn)與重載相似的效果?

鄭重聲明:PowerShell自定義函數(shù)不支持重載!也就是說,你不能定義兩個同名的PowerShell函數(shù),不管參數(shù)個數(shù)、順序、類型是否相同。既然PowerShell自定義函數(shù)不支持重載功能,那么有沒有什么辦法來實現(xiàn)與重載相似的效果呢?有,當然有,那就是參數(shù)集(Parameters Set)

PowerShell自定義函數(shù)的參數(shù)集是可以為一個函數(shù)定義一個參數(shù)集,在調用函數(shù)時可以從參數(shù)集中選擇一個參數(shù)進行使用。注意,只能從參數(shù)集中選擇一個來使用。先看看這個示例,對參數(shù)集好有一個感性的認識。
代碼如下:
function Add-User
{
    [CmdletBinding(DefaultParameterSetName='A')]
    param
    (
        [Parameter(ParameterSetName='A',Mandatory=$true)]
        $Name,
        [Parameter(ParameterSetName='B',Mandatory=$true)]
        $SAMAccountName,
        [Parameter(ParameterSetName='C',Mandatory=$true)]
        $DN
    )
    $chosen = $PSCmdlet.ParameterSetName
    “You have chosen $chosen parameter set.”
}

上面Add-User函數(shù)定義了一個參數(shù)集,參數(shù)集中有三個參數(shù):Name、SAMAccountName、DN,可以選擇其中任何一個使用。但Add-User函數(shù)只能傳一個參數(shù)。
代碼如下:PS> Add-User -Name test
You have chosen A parameter set.
PS> Add-User -SAMAccountName test
You have chosen B parameter set.
PS> Add-User -DN test
You have chosen C parameter set.
PS> Add-User -DN test -Name test
Add-User : Parameter set cannot be resolved using the specified named parameters.

洪哥再舉個例子,我們要做一個函數(shù),想通過新聞ID或新聞標題來輸出新聞的內容。那么應該怎么實現(xiàn)呢?
代碼如下:
function Get-NewsContent
{
    [CmdletBinding(DefaultParameterSetName='A')]
    [Parameter(ParameterSetName='A',Mandatory=$true)]
    $NewsID,
    [Parameter(ParameterSetName='B',Mandatory=$true)]
    $NewsTitle
   
    $chosen = $PSCmdlet.ParameterSetName
    If($chosen -eq "A"){
        "News Content by NewsID"
    }else{
        "News Content by NewsTitle"
    }
}

關于PowerShell函數(shù)支持重載嗎,本文就介紹這么多,希望對您有所幫助,謝謝!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宿州市| 大宁县| 永寿县| 裕民县| 曲沃县| 长泰县| 阳高县| 七台河市| 溆浦县| 汪清县| 荔浦县| 博湖县| 抚顺县| 虎林市| 漳州市| 乌拉特前旗| 淳安县| 西乡县| 开江县| 蓬莱市| 洪洞县| 洞头县| 宝兴县| 措美县| 长子县| 元氏县| 磐安县| 华安县| 德安县| 宣恩县| 墨脱县| 施甸县| 班玛县| 腾冲县| 洛宁县| 简阳市| 黔西| 南乐县| 错那县| 锡林浩特市| 通海县|