about_Hidden

Kısa açıklama

Sınıf üyelerini hidden varsayılan Get-Member sonuçlardan gizleyen anahtar sözcüğünü açıklar.

Uzun açıklama

Bir betikte anahtar sözcüğünü hidden kullandığınızda, sınıfın üyelerini varsayılan olarak gizlersiniz. Gizli üyeler cmdlet, IntelliSense veya sekme tamamlama sonuçlarının Get-Member varsayılan sonuçlarında görüntülenmez. Anahtar sözcüğüyle hidden gizlediğiniz üyeleri görüntülemek için, komutuna Get-Member Force parametresini ekleyin.

Anahtar hidden sözcüğü gizleyebilir:

  • yöntemler (oluşturucular dahil)
  • etkinlikler
  • diğer ad özellikleri
  • diğer üye türleri (statik üyeler dahil)

Gizli üyeler, gizli üyeyi tanımlayan sınıfta tamamlanma gerçekleşmediği sürece sekme tamamlama veya IntelliSense'te görüntülenmez.

Yeni System.Management.Automation.HiddenAttribute özniteliği, C# kodunun PowerShell'de aynı semantiklere sahip olmasını sağlar.

anahtar hidden sözcüğü, sınıfın kullanıcılarının görebilmesini veya düzenleyebilmesini istemediğiniz bir sınıf içinde özellik ve yöntemler oluşturmak için kullanışlıdır.

Anahtar sözcüğü, hidden bir sınıfın üyelerini görüntüleme veya değişiklik yapma üzerinde hiçbir etkisi yoktur. PowerShell'deki tüm dil anahtar sözcükleri gibi büyük hidden /küçük harfe duyarlı değildir ve gizli üyeler hala geneldir.

Anahtar hidden sözcüğü, özel sınıflarla birlikte Windows PowerShell 5.0'da tanıtıldı.

ÖRNEK

Aşağıdaki örnekte anahtar sözcüğün hidden bir sınıf tanımında nasıl kullanılacağı gösterilmektedir. Araç sınıfı yöntemi olan Drive'ın bir özelliği, sürüşleri vardır. Bu özellik, yalnızca Drive'ın Araç sınıfında çağrılma sayısını uzun olduğundan, görüntülenmesi veya değiştirilmesi gerekmez. Sınıfın kullanıcıları için önemli olmayan ölçüm (örneğin, bir araba satın alırken satıcıya arabanın kaç sürücüye alındığını sormamayı düşünün).

Sınıfın kullanıcılarının bu özelliği değiştirmesine gerek olmadığından, anahtar sözcüğünü kullanarak özelliğini ve Get-Member otomatik tamamlama sonuçlarından hidden gizleyebiliriz.

anahtar sözcüğünü hidden özellik ve veri türüyle aynı deyim satırına girerek ekleyin. Anahtar sözcük bu satırda herhangi bir sırada olsa da, deyimi anahtar hidden sözcükle başlatmak, daha sonra gizlediğiniz tüm üyeleri tanımlamanızı kolaylaştırır.

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
}

Şimdi, Car sınıfının yeni bir örneğini oluşturun ve bunu bir değişkenine $TestCarkaydedin.

$TestCar = [Car]::new()

Yeni örneği oluşturduktan sonra değişkeninin içeriğini öğesine yöneltin $TestCarGet-Member. Rides özelliğinin komut sonuçlarında listelenen Get-Member üyeler arasında olmadığını gözlemleyin.

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

Şimdi yeniden çalıştırmayı Get-Member deneyin, ancak bu kez parametresini -Force ekleyin. Sonuçların, varsayılan olarak gizli olan diğer üyelerin yanında gizli rides özelliğini içerdiğini unutmayın.

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

Ayrıca bkz.