Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deskripsi singkat
Menjelaskan kata kunci hidden, yang menyembunyikan anggota kelas dari hasil Get-Member default.
Deskripsi panjang
Saat Anda menggunakan kata kunci hidden dalam skrip, Anda menyembunyikan anggota kelas secara default. Anggota tersembunyi tidak ditampilkan dalam hasil default cmdlet Get-Member, IntelliSense, atau hasil penyelesaian tab. Untuk menampilkan anggota yang telah Anda sembunyikan dengan kata kunci hidden, tambahkan parameter Force ke perintah Get-Member.
Kata kunci hidden dapat menyembunyikan:
- metode (termasuk konstruktor)
- Peristiwa
- properti alias
- jenis anggota lain (termasuk anggota statis)
Anggota tersembunyi tidak ditampilkan dalam penyelesaian tab atau IntelliSense kecuali penyelesaian terjadi di kelas yang menentukan anggota tersembunyi.
Atribut baru, System.Management.Automation.HiddenAttribute, memungkinkan kode C# memiliki semantik yang sama dalam PowerShell.
Kata kunci hidden berguna untuk membuat properti dan metode dalam kelas yang tidak ingin pengguna kelas melihat atau mudah diedit.
Kata kunci hidden tidak berpengaruh pada bagaimana Anda dapat melihat atau membuat perubahan pada anggota kelas. Seperti semua kata kunci bahasa di PowerShell, hidden tidak peka huruf besar/kecil, dan anggota tersembunyi masih bersifat publik.
Kata kunci hidden, bersama dengan kelas kustom, diperkenalkan di Windows PowerShell 5.0.
Example
Contoh berikut menunjukkan cara menggunakan kata kunci hidden dalam definisi kelas. Metode kelas Mobil, Drive, memiliki properti, Rides, yang tidak perlu dilihat atau diubah karena hanya tinggi berapa kali Drive dipanggil pada kelas Mobil. Metrik yang tidak penting bagi pengguna kelas (pertimbangkan, misalnya, bahwa ketika Anda membeli mobil, Anda tidak bertanya kepada penjual tentang berapa kali mobil tersebut telah digunakan).
Karena ada sedikit kebutuhan bagi pengguna kelas untuk mengubah properti ini, kita dapat menyembunyikan properti dari Get-Member dan hasil penyelesaian otomatis dengan menggunakan kata kunci hidden.
Tambahkan kata kunci hidden dengan memasukkannya pada baris pernyataan yang sama dengan properti dan jenis datanya. Meskipun kata kunci dapat dalam urutan apa pun pada baris ini, memulai pernyataan dengan kata kunci hidden memudahkan Anda nanti untuk mengidentifikasi semua anggota yang telah Anda sembunyikan.
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
}
Sekarang, buat instance baru dari kelas Mobil
$TestCar = [Car]::new()
Setelah Anda membuat instans baru, pipa konten variabel $TestCar ke Get-Member. Perhatikan bahwa properti Rides tidak termasuk dalam anggota yang tercantum dalam hasil perintah 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;}
Sekarang, coba jalankan Get-Member lagi, tetapi kali ini, tambahkan parameter -Force.
Perhatikan bahwa hasilnya berisi properti Rides tersembunyi, di antara anggota lain yang disembunyikan secara default.
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;}