Bagikan melalui


tentang_Tersembunyi

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 , dan simpan dalam variabel .

$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;}

Lihat juga