간단한 설명
기본 hidden 결과에서 클래스 멤버를 숨기는 Get-Member 키워드에 대해 설명합니다.
긴 설명
스크립트에서 hidden 키워드를 사용하는 경우 기본적으로 클래스의 멤버를 숨깁니다. 숨겨진 멤버는 Get-Member cmdlet, IntelliSense 또는 탭 완성 결과의 기본 결과에 표시되지 않습니다.
hidden 키워드를 사용하여 숨겨진 멤버를 표시하려면 명령에 Get-Member 매개 변수를 추가합니다.
hidden 키워드는 다음을 숨길 수 있습니다.
- 메서드(생성자 포함)
- 이벤트
- 별칭 속성
- 다른 멤버 형식(정적 멤버 포함)
숨겨진 멤버를 정의하는 클래스에서 완료가 발생하지 않는 한 숨겨진 멤버는 탭 완성 또는 IntelliSense에 표시되지 않습니다.
System.Management.Automation.HiddenAttribute
hidden 키워드는 클래스의 사용자가 보거나 쉽게 편집할 수 없도록 클래스 내에서 속성과 메서드를 만드는 데 유용합니다.
hidden 키워드는 클래스의 멤버를 보거나 변경할 수 있는 방법에 영향을 주지 않습니다. PowerShell의 모든 언어 키워드와 마찬가지로 hidden 대/소문자를 구분하지 않으며 숨겨진 멤버는 여전히 공용입니다.
사용자 지정 클래스와 함께 hidden 키워드는 Windows PowerShell 5.0에서 도입되었습니다.
Example
다음 예제에서는 클래스 정의에서 hidden 키워드를 사용하는 방법을 보여줍니다.
Car 클래스 메서드인 Drive에는 Car 클래스에서 Drive 호출되는 횟수를 계산하기 때문에 보거나 변경할 필요가 없는 라이드속성이 있습니다. 클래스 사용자에게 중요하지 않은 메트릭입니다(예를 들어 자동차를 구매할 때 판매자에게 얼마나 많은 드라이브를 가져갔는지 묻지 않는 것이 좋습니다).
클래스 사용자가 이 속성을 변경할 필요가 거의 없으므로 Get-Member 키워드를 사용하여 속성을 hidden 자동 완성 결과에서 숨길 수 있습니다.
속성 및 해당 데이터 형식과 동일한 문 줄에 입력하여 hidden 키워드를 추가합니다. 키워드는 이 줄에서 순서대로 지정할 수 있지만 hidden 키워드를 사용하여 문을 시작하면 나중에 숨긴 모든 멤버를 쉽게 식별할 수 있습니다.
class Car
{
# Properties
[string] $Color
[string] $ModelYear
[int] $Distance
# Method
[int] Drive ([int]$Miles)
{
$this.Distance += $Miles
$this.Rides++
return $this.Distance
}
# Hidden property of the Drive method
hidden [int] $Rides = 0
}
이제 Car 클래스의 새 인스턴스를 만들고 변수 $TestCar저장합니다.
$TestCar = [Car]::new()
새 인스턴스를 만든 후 $TestCar 변수의 내용을 Get-Member파이프합니다.
Rides 속성이 Get-Member 명령 결과에 나열된 멤버에 속하지 않는지 확인합니다.
PS C:\Windows\system32> $TestCar | Get-Member
TypeName: Car
Name MemberType Definition
---- ---------- ----------
Drive Method int Drive(int Miles)
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Color Property string Color {get;set;}
Distance Property int Distance {get;set;}
ModelYear Property string ModelYear {get;set;}
이제 Get-Member 다시 실행해 보지만 이번에는 -Force 매개 변수를 추가합니다.
결과에는 기본적으로 숨겨진 다른 멤버 중에서 숨겨진 Rides 속성이 포함됩니다.
PS C:\Windows\system32> $TestCar | Get-Member -Force
TypeName: Car
Name MemberType Definition
---- ---------- ----------
pstypenames CodeProperty System.Collections.ObjectModel.Collection`1
psadapted MemberSet psadapted {Color, ModelYear, Distance,
psbase MemberSet psbase {Color, ModelYear, Distance,...
psextended MemberSet psextended {}
psobject MemberSet psobject {BaseObject, Members,...
Drive Method int Drive(int Miles)
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
get_Color Method string get_Color()
get_Distance Method int get_Distance()
get_ModelYear Method string get_ModelYear()
get_Rides Method int get_Rides()
set_Color Method void set_Color(string )
set_Distance Method void set_Distance(int )
set_ModelYear Method void set_ModelYear(string )
set_Rides Method void set_Rides(int )
ToString Method string ToString()
Color Property string Color {get;set;}
Distance Property int Distance {get;set;}
ModelYear Property string ModelYear {get;set;}
Rides Property int Rides {get;set;}
참고하십시오
PowerShell