پاورشل برای برنامهنویسان
@programming_tipsدرسنامه: Properties و Methods
۱. ویژگیهای اشیا | Properties
ویژگی یا Property، مشخصهای از یک شی است که اطلاعات آن را نگه میدارد. هر شی میتواند مجموعهای از Property داشته باشد.
مثال با Process
$proc = Get-Process | Select-Object -First 1 $proc.ProcessName # نام فرآیند $proc.Id # شناسهی فرآیند $proc.CPU # میزان استفاده از CPU
اینجا $proc یک شی از نوع Process است.
$proc.ProcessNameنام فرآیند را برمیگرداند$proc.Idشناسه منحصر به فرد فرآیند را برمیگرداند$proc.CPUمیزان مصرف CPU را نشان میدهد
Propertyها معمولاً دادهای هستند که فقط میتوان خواند و بعضاً تغییر داد.
دسترسی و تغییر Property
برخی Propertyها قابل تغییر هستند، مثل وقتی که یک شی خود ساختهایم:
$person = New-Object PSObject -Property @{
Name = "Ali"
Age = 27
}
$person.Age = 28 # تغییر مقدار Property
Write-Output $person.Age
۲. متدهای اشیا | Methods
متد یا Method عملیاتی است که میتوان روی یک شی انجام داد. بر خلاف Property که داده را نگه میدارد، Method کاری روی شی انجام میدهد و ممکن است خروجی هم داشته باشد.
مثال با String
$text = "hello world" $text.ToUpper() # خروجی: HELLO WORLD $text.Length # Property: طول رشته
اینجا ToUpper() یک Method است که رشته را به حروف بزرگ تبدیل میکند، در حالی که Length Property است که فقط طول رشته را برمیگرداند.
مثال با DateTime
$today = Get-Date $today.DayOfWeek # Property: روز هفته $today.AddDays(5) # Method: ۵ روز به تاریخ اضافه میکند
۳. دیدن Property و Method یک شی
برای اینکه بفهمیم یک شی چه Property و Methodهایی دارد، از دستور Get-Member استفاده میکنیم:
Get-Process | Select-Object -First 1 | Get-Member
این دستور لیستی از Propertyها و Methodهای شی Process را نمایش میدهد.
- Propertyها معمولاً اطلاعات را نگه میدارند
- Methodها عملکردی روی آن داده انجام میدهند
۴. اضافه کردن Property و Method دلخواه
میتوان به اشیاء خود Property یا Method اضافه کرد تا آنها را شخصیسازی کنیم:
$person = New-Object PSObject -Property @{
Name = "Ali"
}
# اضافه کردن Property جدید
$person | Add-Member -MemberType NoteProperty -Name "Age" -Value 27
# اضافه کردن Method جدید
$person | Add-Member -MemberType ScriptMethod -Name "Greet" -Value { "Hello, $($this.Name)!" }
Write-Output $person.Age
Write-Output $person.Greet()
اینجا با Add-Member هم یک Property اضافه کردیم و هم یک Method دلخواه که سلام میدهد.
۵. نکات مهم
- پس Property همیشه اطلاعات یا وضعیت شی را نگه میدارد.
- Method عملیاتی است که روی شی انجام میشود و ممکن است دادهای برگرداند.
- برای مشاهده همهی Property و Methodها،
Get-Memberابزار اصلی است. - میتوان Property و Method جدید به اشیاء اضافه کرد و شیها را به دلخواه شخصیسازی کرد.
- ترکیب Property و Methodها، PowerShell را بسیار قدرتمند میکند و باعث میشود دستورات پیچیده بدون پردازش متن ساده و واضح باشند.
✨ تمرین پیشنهادی:
- یک رشته بساز و طول آن و تعداد حروف بزرگش را با Property و Method بررسی کن.
- یک شی جدید بساز و به آن Property و Method دلخواه اضافه کن، سپس آنها را اجرا و نمایش بده.
- خروجی دستور
Get-Serviceرا بگیر و باGet-Memberبررسی کن ببین چه Property و Methodهایی دارد.