关于PowerShell中的Hidden关键字作用

在PowerShell 5.0中有一个Hidden关键字,该关键字的作用可以隐藏来自Get-Member所输出的部分结果信息。

这样说吧,当你使用Hidden关键字的时候,你可以隐藏属性,方法,甚至包括别名属性,方法类型等等可以从Get-Member cmdlet输出的信息,甚至等你在编辑器里的时候使用。那么什么时候我们需要隐藏所谓的这些成员属性,方法等等信息呢,当你觉得有些属性未必是最重要的或者不想被用户直接看到的你可以选择把它隐藏起来。

我们先通过如下例子来看看如何使用Hidden关键字:

class People
{
    [int]$Stature
    [String]$Name
    [String]$Gender

    [String]PersonInfo([String]$NickName)
    {
        $this.Name += $NickName
        $this.Age
        return $this.Name
    }

    hidden [int] $Age = 20
} 

在上面的例子中,我们定义了一个People类,里面包含了一些我们定义的属性,和一个PersonInfo方法,但是我不想让用户直接看到所定义的Age属性,所以在这里我使用了Hidden关键字在我们想要隐藏的属性前面把该属性隐藏起来。

$PeopleA = [People]::new()

我们先生成一个实例对象来查看是否真正成功的把所需要隐藏的属性隐藏起来了。

接着我们使用Get-Member方法查看该实例对象下所包含的成员属性、方法等信息:

PS C:\Windows\system32> $PeopleA|Get-Member


   TypeName: People

Name        MemberType Definition                        
----        ---------- ----------                        
Equals      Method     bool Equals(System.Object obj)    
GetHashCode Method     int GetHashCode()                 
GetType     Method     type GetType()                    
PersonInfo  Method     string PersonInfo(string NickName)
ToString    Method     string ToString()                 
Gender      Property   string Gender {get;set;}          
Name        Property   string Name {get;set;}            
Stature     Property   int Stature {get;set;} 
我们可以看到并没有包含Age属性信息,当我们加上Force参数来强制显示所有成员时便可以成功地看到Age属性了,如下:

PS C:\Windows\system32> $PeopleA|Get-Member -Force


   TypeName: People

Name        MemberType   Definition                                                                                                                                                            
----        ----------   ----------                                                                                                                                                            
pstypenames CodeProperty System.Collections.ObjectModel.Collection`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] pstypenames{get=PSTypeNam...
psadapted   MemberSet    psadapted {Stature, Name, Gender, get_Stature, set_Stature, get_Name, set_Name, get_Gender, set_Gender, PersonInfo, get_Age, set_Age, ToString, Equals, GetHashCode...
psbase      MemberSet    psbase {Stature, Name, Gender, get_Stature, set_Stature, get_Name, set_Name, get_Gender, set_Gender, PersonInfo, get_Age, set_Age, ToString, Equals, GetHashCode, G...
psextended  MemberSet    psextended {}                                                                                                                                                         
psobject    MemberSet    psobject {BaseObject, Members, Properties, Methods, ImmediateBaseObject, TypeNames, get_BaseObject, get_Members, get_Properties, get_Methods, get_ImmediateBaseObje...
Equals      Method       bool Equals(System.Object obj)                                                                                                                                        
GetHashCode Method       int GetHashCode()                                                                                                                                                     
GetType     Method       type GetType()                                                                                                                                                        
get_Age     Method       int get_Age()                                                                                                                                                         
get_Gender  Method       string get_Gender()                                                                                                                                                   
get_Name    Method       string get_Name()                                                                                                                                                     
get_Stature Method       int get_Stature()                                                                                                                                                     
PersonInfo  Method       string PersonInfo(string NickName)                                                                                                                                    
set_Age     Method       void set_Age(int )                                                                                                                                                    
set_Gender  Method       void set_Gender(string )                                                                                                                                              
set_Name    Method       void set_Name(string )                                                                                                                                                
set_Stature Method       void set_Stature(int )                                                                                                                                                
ToString    Method       string ToString()                                                                                                                                                     
Age         Property     int Age {get;set;}                                                                                                                                                
Gender      Property     string Gender {get;set;}                                                                                                                                              
Name        Property     string Name {get;set;}                                                                                                                                                
Stature     Property     int Stature {get;set;}  






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值