Cincinnati PowerShell User Group (@CincyPowershell) åpner hvert møte med en gjennomgang av en cmdlet. I kveld var Få Oppdatert sin. Mange av eksemplene som ble gjort med begge Får Oppdatert og , med ett eksempel som viser at bare støtter IsLeapYear () – metoden. Dette fikk meg til å tenke… (noen ganger en smertefull ting…) og lyspæren lyser opp over hodet. Få Oppdatert returnerer en instans av Systemet.DateTime-klassen, dvs., et objekt, mens det er en referanse til klassen, og gir enkel tilgang til klasse er statiske metoder.
System.DateTime
Hva er det med de to kolon? De er PowerShell ‘ s måte å ringe en statisk metode på en klasse. Så går tilbake til IsLeapYear() spørsmålet, det er en statisk metode for DateTime-klassen. For å få tilgang til det vi skriver ::IsLeapYear(2016).
Få-Dato
Komme-Dato er en cmdlet med mange alternativer, men som standard er alternativet å gå tilbake til gjeldende dato og klokkeslett. I. e. ::Nå.
Den klassen som et objekt ble opprettet fra, er også kalt den typen. Så hva er den «type» av en dato?,
![]()
Forekomster / Objekter
Hvis du Får Oppdatert returnerer et eksempel, hvordan kunne jeg gjøre det med ? To måter, bruke en av de statiske metoder som .Nå eller .I dag, eller opprett et nytt objekt ved å bruke New-Object-cmdleten.
ved Hjelp av statiske metoder:
$d = ::Nå (eller bare .Nå er)
$d = ::i Dag (eller bare .I dag)
ved Hjelp av New-Object:
$d = New-Object-Systemet.,DateTime (eller bare DateTime)
Den unike aspektet ved hjelp av Ny-Objekt med DateTime er at du får tilbake et objekt med standardverdier for år, måned, dag, osv. og ikke dagens dato. Det faktiske resultatet er «mandag, januar 01, 0001 12:00:00 AM».
![]()
Hvis du ønsker å opprette en bestemt dato eller klokkeslett, bruker du en av klassens konstruktører. (Se DateTime Struktur linken på slutten av artikkelen for detaljer.)
![]()
Det er en fin skrive opp om klasser, forekomster, statics her fra Don Jones.,
Og bare for moro skyld… og bare i PowerShell 5.0
Som trenger ? Bare kalle den statiske metoder av noen DateTime objekt! Følgende produserer samme resultat, husk at Get-Date legger ekstra overhead for å hente dagens dato, og så ignorerer det.
(Få-Dato)::IsLeapYear(2016)
$d = Get-Date
$d::IsLeapYear(2016)$d = ::Nå
$d::IsLeapYear(2016)
Hva om PowerShell 3.0?
eksemplene for 5.0 virker ikke med 3.0. Vi er nødt til å be om «klasse», dvs. det er Type.,
(Få-Dato).GetType()::IsLeapYear(2016)
$d = Get-Date
$d.GetType()::IsLeapYear(2016)$d = ::Nå
$d.GetType()::IsLeapYear(2016)
Hva om PowerShell 4.0?
Beats meg! (Har ikke en kopi foran meg akkurat nå.)
Oppdag den Statiske Metoder og Egenskaper for et Objekt
Komme-Medlem har en Statisk parameter for å vise den statiske metoder og egenskaper av et objekt:
Komme-Dato | Bli-Medlem -Static
![]()
Mer Moro Med Statiske Metoder
de Fleste .,Net klasser er ikke eksponert i PowerShell cmdlets som.
For eksempel, kanskje du trenger en ny GUID…
:: NewGuid() vil returnere en ny GUID objekt.
:: NewGuid().toString() vil returnere en ny GUID som en string.
![]()
Hvordan om noen Matte?
Må verdien av PI?
:: PI (eller kun ::PI) Det handler om 3.14159265358979 i henhold til PowerShell og .Net.
Hvordan er det med kvadratroten av 2?
:: Sqrt(2) (La oss se… jeg tror det handler om 1.4142135623731.)
Og selvfølgelig, Sinus på 45 grader:
:: synd(0.,785398163397448) (i Radianer selvfølgelig) Å, om 0.707106781186547.
Og gjør en litt konvertering fra grader til Radianer:
:: sin( ::pi/180*45 )
For mer av det i mattetimen kan gjøre, se Regnestykket linken på slutten av artikkelen. Eller, vent til det, bruke PowerShell:
| Bli-Medlem -Static
Nederste linje… hvis C# gutta kan gjøre det, så kan du!
Så nå vet du… 2016 er et skuddår! Og minst et dusin forskjellige måter!
(og en kjapp 5-minutters artikkelen tok over en time…)
ved Hjelp av Statiske Klasser og Metoder
System.Mattetimen
Leave a Reply