about_Hidden
간단한 설명
hidden
기본 Get-Member
결과에서 클래스 멤버를 숨기는 키워드에 대해 설명합니다.
자세한 설명
스크립트에서 hidden
키워드를 사용하는 경우 기본적으로 클래스의 멤버를 숨깁니다. 숨겨진 멤버는 cmdlet, IntelliSense 또는 탭 완성 결과의 기본 결과에 Get-Member
표시되지 않습니다. 키워드를 사용하여 숨겨진 멤버를 hidden
표시하려면 Force 매개 변수를 Get-Member
명령에 추가합니다.
키워드는 hidden
다음을 숨길 수 있습니다.
- 메서드(생성자 포함)
- events
- 별칭 속성
- 다른 멤버 형식(정적 멤버 포함)
숨겨진 멤버를 정의하는 클래스에서 완료가 발생하지 않는 한 숨겨진 멤버는 탭 완성 또는 IntelliSense에 표시되지 않습니다.
새 특성인 System.Management.Automation.HiddenAttribute를 사용하면 C# 코드가 PowerShell 내에서 동일한 의미 체계를 가질 수 있습니다.
이 hidden
키워드는 클래스의 사용자가 보거나 쉽게 편집할 수 없도록 클래스 내에서 속성과 메서드를 만드는 데 유용합니다.
키워드는 hidden
클래스의 멤버를 보거나 변경할 수 있는 방법에 영향을 주지 않습니다. PowerShell의 모든 언어 키워드와 마찬가지로 대 hidden
/소문자를 구분하지 않으며 숨겨진 멤버는 여전히 공용입니다.
사용자 hidden
지정 클래스와 함께 키워드는 Windows PowerShell 5.0에서 도입되었습니다.
예제
다음 예제에서는 클래스 정의에서 키워드를 hidden
사용하는 방법을 보여줍니다. 자동차 클래스 메서드인 Drive에는 차량 클래스에서 드라이브가 호출되는 횟수만 계산하기 때문에 보거나 변경할 필요가 없는 속성, 놀이기구가 있습니다. 클래스 사용자에게 중요하지 않은 메트릭입니다(예를 들어 자동차를 구매할 때 판매자에게 얼마나 많은 드라이브를 가져갔는지 묻지 않는 것이 좋습니다).
클래스 사용자가 이 속성을 변경할 필요가 거의 없으므로 키워드를 사용하여 hidden
속성을 Get-Member
숨기고 자동 완성 결과를 숨길 수 있습니다.
키워드를 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()
새 인스턴스를 만든 후 변수Get-Member
의 $TestCar
내용을 .에 파이프합니다. 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
.
결과에는 기본적으로 숨겨진 다른 멤버 중에서 숨겨진 놀이기구 속성이 포함됩니다.
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