CmdletBindingAttribute之PostionalBinding的作用
来源:互联网 发布:cool edit pro有mac版 编辑:程序博客网 时间:2024/05/16 06:23
在上一篇讲完Advanced Function中的HelpURI之后,我们今天接着要说的是另一个新特性:“PositionalBinding”。
从字面上理解PostionalBinding就是位置参数绑定的意思,PositionalBinding参数是用来决定方法中参数的位置,它可以设置为$true或者$false。接下来让我们看看他在Function中的具体作用。
Function Test-Positional{ [CmdletBinding()] Param ( [Parameter()] $StringData1, [Parameter()] $StringData2 ) Write-Host -Object $StringData1 Write-Host -Object $StringData2}Test-Positional "A" "B"
如上例子,我们按照以往定义一个Function一样,对这个函数进行以往的操作,即便没有键入参数名也没有得到任何错误。
再来,让我们看看配合使用PositionalBinding的设置后的情况,将PositionalBinding设置为$False就意味着你将不需要位置参数的绑定。
Function Test-Positional{ [CmdletBinding(PositionalBinding=$False)] Param ( [Parameter()] $StringData1, [Parameter()] $StringData2 ) Write-Host -Object $StringData1 Write-Host -Object $StringData2}Test-Positional "A" "B"
由于设置了不绑定位置参数的关系,而我们又没有设定Position,所以当你在没有键入参数名的情况下,方法就提示找不到参数名所匹配的位置了,也就是说如果设置为$False后,我们必须强制指定参数名才行。
Test-Positional : A positional parameter cannot be found that accepts argument 'A'.At line:16 char:1+ Test-Positional "A" "B"+ ~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Test-Positional], Paramete rBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Test-Positional
所以,当设定不绑定参数位置的时候,我们只能指定其每个参数的位置才能避免方法能顺利匹配所对应的参数值。
Function Test-Positional{ [CmdletBinding(PositionalBinding=$False)] Param ( [Parameter(Position=0)] $StringData1, [Parameter(Position=1)] $StringData2 ) Write-Host -Object $StringData1 Write-Host -Object $StringData2}Test-Positional "A" "B"
如果在没有指定参数位置的情况下,当然也可以强制手动输入参数名的方式来执行。
Function Test-Positional{ [CmdletBinding(PositionalBinding=$False)] Param ( [Parameter()] $StringData1, [Parameter()] $StringData2 ) Write-Host -Object $StringData1 Write-Host -Object $StringData2}Test-Positional -StringData1 "A" -StringData2 "B"
- CmdletBindingAttribute之PostionalBinding的作用
- CmdletBindingAttribute之HelpURI的作用
- CmdletBindingAttribute之SupportsPaging的作用
- 感想之blog的作用
- 读书笔记之final的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Oracle之监听的作用
- Spring之ContextLoaderListener的作用
- Redis 之 Redis的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- Spring之ContextLoaderListener的作用
- 分布式设计与开发(一)------宏观概述
- 我的大学之“毕业季”
- 【十天学会Linq to sql】第二天—–数据上下文
- 分布式设计与开发(二)------几种必须了解的分布式算法
- Ubuntu12.04安装中fbterm问题解决
- CmdletBindingAttribute之PostionalBinding的作用
- 分布式设计与开发(三)------高一致性服务ZooKeeper
- 61条面向对象设计的经验原则
- Android UI控件四
- 师兄有话说
- uva825 - Walking on the Safe Side(动规)
- 基于Jupiter建立code review机制
- 单例模式
- 二叉排序树(BST)的查找算法(非递归算法)