Cincinnati PowerShell Grup de utilizatori (@CincyPowershell) se deschide în fiecare întâlnire cu o revizuire de o cmdlet. In seara asta este a fost rândul Get-Data lui. Multe dintre exemple au fost realizate atât cu Get-Date, cât și cu un exemplu care arată că acceptă numai metoda IsLeapYear (). Acest lucru m-a făcut să mă gândesc… (uneori un lucru dureros…) și becul s-a aprins peste capul meu. Get-Date returnează o instanță a sistemului.Clasa DateTime, adică., un obiect, în timp ce este o referință la clasa și oferă acces ușor la metodele statice ale clasei.
sistem.DateTime
ce este cu cele două puncte? Acestea sunt modul PowerShell de a apela o metodă statică pe o clasă. Deci, revenind la întrebarea IsLeapYear (), este o metodă statică a clasei DateTime. Pentru a-l accesa, scriem ::IsLeapYear(2016).
Get-Date
Get-Date este un cmdlet cu multe opțiuni, dar opțiunea implicită este de a returna data și ora curente. I. e.:: acum.
clasa din care a fost creat un obiect se mai numește tipul acestuia. Deci, care este „tipul” unei întâlniri?,
instanțe / obiecte
dacă Get-Date returnează o instanță, cum aș putea face asta cu ? Două moduri, utilizați una dintre metodele statice, cum ar fi .Acum sau .Astăzi, sau creați un obiect nou folosind cmdletul New-Object.
folosind metodele statice:
$d = ::acum (sau doar .Acum)
$d=:: astăzi (sau doar .Astazi)
folosind New-Object:
$d = sistem nou-obiect.,DateTime (sau doar DateTime)
aspectul unic al utilizării New-Object cu DateTime este că veți obține înapoi un obiect cu valori implicite pentru An, Lună, Zi, etc. și nu Data de azi. Rezultatul real este „luni, ianuarie 01, 0001 12: 00: 00 AM”.
Dacă doriți să creați o anumită dată sau oră, utilizați unul dintre Constructorii clasei. (Consultați link-ul DateTime Structure de la sfârșitul articolului pentru detalii.)
există o scriere frumoasă despre clase, instanțe, statică aici de la Don Jones.,
și doar pentru distracție… și numai în PowerShell 5.0
Cine are nevoie ? Doar apelați metodele statice de pe orice obiect DateTime! Următoarele toate produc același rezultat, ținând cont de faptul că Get-Date adaugă cheltuielile suplimentare de recuperare a datei curente, și apoi ignorând-o.
(Get-Date)::IsLeapYear(2016)
$d = Get-Date
$d::IsLeapYear(2016)$d = ::Acum
$d::IsLeapYear(2016)
Ce zici de PowerShell 3.0?
exemplele pentru 5.0 nu funcționează cu 3.0. Trebuie să cerem „clasa”, adică este tipul.,
(Get-Data).GetType()::IsLeapYear(2016)
$d = Get-Date
$d.GetType()::IsLeapYear(2016)$d = ::Acum
$d.GetType()::IsLeapYear(2016)
Ce zici de PowerShell 4.0?
mă bate! (Nu aveți o copie în fața mea chiar acum.)
de a Descoperi Metode Statice și Proprietățile unui Obiect
Get-Membru are un –Static parametru pentru a afișa metode statice și proprietăți ale unui obiect:
Get-Data | Ia-Membru -Static
Mai Distractiv Cu Metode Statice
cel Mai mult .,Clasele nete nu sunt expuse în PowerShell ca cmdleturi.
de exemplu, este posibil să aveți nevoie de un nou GUID…
::NewGuid() va returna un nou obiect GUID.
:: NewGuid ().toString () va returna un nou GUID ca șir.
Ce zici de unele matematica?
aveți nevoie de valoarea PI?
::PI (sau doar:: PI) este vorba despre 3.14159265358979 conform PowerShell și .Net.
Ce zici de rădăcina pătrată a lui 2?
:: Sqrt(2) (Să vedem… Cred că este vorba despre 1.4142135623731.și, desigur, sinusul de 45 de grade:
::sin(0.,785398163397448) (în radiani desigur) Oh, aproximativ 0.707106781186547.și de a face un pic de conversie de la grade la radiani:
::sin( ::pi/180*45 )
Pentru mai multe din ceea ce poate face clasa de matematica, a se vedea link-ul de matematica de la sfârșitul articolului. Sau, așteptați-l, utilizați PowerShell: <| p>
/ Get-Member-Static
linia de fund … dacă băieții C# o pot face, atunci puteți și voi!
deci, acum știți … 2016 este un an bisect! Și cel puțin o duzină de moduri diferite!
(și un articol rapid de 5 minute a preluat o oră…)
folosind clase și metode statice
sistem.Clasa de matematică
Leave a Reply