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