about_Hidden

Deskripsi singkat

Menjelaskan hidden kata kunci, yang menyembunyikan anggota kelas dari hasil default Get-Member .

Deskripsi panjang

Saat Anda menggunakan hidden kata kunci dalam skrip, Anda menyembunyikan anggota kelas secara default. Anggota tersembunyi tidak ditampilkan dalam hasil Get-Member default cmdlet, IntelliSense, atau hasil penyelesaian tab. Untuk menampilkan anggota yang telah Anda sembunyikan dengan hidden kata kunci , tambahkan parameter Paksa ke Get-Member perintah .

Kata hidden kunci dapat menyembunyikan:

  • metode (termasuk konstruktor)
  • events
  • 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 hidden kunci berguna untuk membuat properti dan metode dalam kelas yang Anda tidak selalu ingin pengguna kelas melihat atau dengan mudah dapat mengedit.

Kata hidden kunci 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 hidden kunci, bersama dengan kelas kustom, diperkenalkan di Windows PowerShell 5.0.

CONTOH

Contoh berikut menunjukkan cara menggunakan hidden kata kunci dalam definisi kelas. Metode kelas Mobil , Drive, memiliki properti, wahana, 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 berapa banyak drive yang telah diambil mobil).

Karena ada sedikit kebutuhan bagi pengguna kelas untuk mengubah properti ini, kita dapat menyembunyikan properti dari Get-Member dan hasil penyelesaian otomatis dengan menggunakan hidden kata kunci .

hidden Tambahkan kata kunci dengan memasukkannya pada baris pernyataan yang sama dengan properti dan jenis datanya. Meskipun kata kunci dapat berada dalam urutan apa pun di baris ini, memulai pernyataan dengan hidden kata kunci 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 instans baru kelas Mobil , dan simpan dalam variabel, $TestCar.

$TestCar = [Car]::new()

Setelah Anda membuat instans baru, pipa konten variabel ke $TestCarGet-Member. Amati bahwa properti rides tidak termasuk dalam anggota yang Get-Member tercantum dalam hasil perintah.

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 -Force parameter . Perhatikan bahwa hasilnya berisi properti wahana 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