Cincinnati PowerShell käyttäjäryhmä (@CincyPowershell) avaa jokainen tapaaminen uudelleen cmdlet-komentoa. Tänään oli Treffien vuoro. Monet esimerkit tehtiin sekä Get-Date , ja yksi esimerkki, joka osoittaa, että tukee vain IsLeapYear() menetelmä. Tämä sai minut ajattelemaan… (joskus kivulias asia…) ja lamppu syttyi pääni päällä. Get-Date palauttaa järjestelmän.DateTime-Luokka, ts., objekti, kun taas on viittaus luokkaan ja tarjoaa helpon pääsyn luokan staattisiin menetelmiin.
systeemi.DateTime
What ’ s with the two colons? Ne ovat PowerShellin tapa kutsua staattista menetelmää luokassa. Joten palata IsLeapYear () kysymys, se on staattinen menetelmä DateTime luokan. Pääset siihen kirjoittamalla:: IsLeapYear (2016).
Get-Date
Get-Date on cmdlet monia vaihtoehtoja, mutta oletuksena vaihtoehto on palauttaa nykyisen päivämäärän ja ajan. Ts: nyt.
luokkaa, josta esine on luotu, kutsutaan myös sen tyypiksi. Mikä on treffien ”tyyppi”?,
Esiintymät / Esineitä
Jos Get-Date palauttaa esimerkiksi, miten voisin tehdä sen ? Kaksi tapaa, käyttää yhtä staattisia menetelmiä kuten .Nyt tai .Tänään, tai luoda uusi objekti käyttäen New-Object cmdlet.
Käyttämällä staattisia menetelmiä:
$d = ::Nyt (tai vain .Nyt)
$d=: tänään (tai juuri .Nykyään)
Uusi-Objekti:
$d = Uusi-Object System.,DateTime (tai vain DateTime)
ainutlaatuinen näkökohta käyttämällä New-Object kanssa DateTime on, että saat takaisin objektin oletusarvojen vuosi, kuukausi, päivä, jne. eikä tänään. Varsinainen tulos on ”maanantai 01.1.0001 klo 12.00”.
Jos haluat luoda tietyn päivämäärän tai kellonajan, käytä yksi luokan konstruktorit. (Katso tarkemmat tiedot artikkelin lopussa olevasta DateTime-rakenteen linkistä.)
Siellä on kiva kirjoittaa ylös noin luokat, instanssit, statiikka täällä päässä Don Jones.,
ja just for fun… and only in PowerShell 5,0
Who needs ? Vain kutsua staattiset menetelmät pois tahansa DateTime objekti! Seuraavat kaikki tuottavat saman tuloksen, pitäen mielessä, että Get-Date lisää ylimääräiset yleiskustannukset hakea nykyinen päivämäärä, ja sitten sivuuttaa sen.
(Hae-Päivämäärä)::IsLeapYear(2016)
$d = Get-Date
$d::IsLeapYear(2016)$d = ::Nyt
$d::IsLeapYear(2016)
Entä PowerShell 3.0?
esimerkkejä 5.0 ei toimi 3.0. Meidän täytyy pyytää, ”luokka”, eli se on Tyyppi.,
(Get-Date).GetType()::IsLeapYear(2016)
$d = Get-Date
$d.GetType()::IsLeapYear(2016)$d = ::Nyt
$d.GetType()::IsLeapYear(2016)
Entä PowerShell 4.0?
Beats me! (Ei ole kopiota edessäni juuri nyt.)
Tutustu Staattiset Metodit ja Ominaisuudet Kohteen
Get-Member on –Staattinen parametri näyttää staattisia menetelmiä ja ominaisuuksia esineen:
Get-Date | Get-Member-Staattinen
Lisää Hauskaa Kanssa Staattisia Menetelmiä
Eniten .,Nettoluokkia ei paljasteta Powershellissa cmdleteiksi.
esimerkiksi, saatat tarvita uuden GUID…
::NewGuid() palauttaa uuden GUID kohde.
: NewGuid().toString () palauttaa uuden Guidin merkkijonona.
entä Matematiikka?
Tarvitsetko PI: n arvon?
::PI (tai vain ::PI) on noin tulokseksi 3,14159265358979 mukaan PowerShell ja .Net.
entä neliöjuuri 2?
::Sqrt(2) (katsotaanpa… luulen, että se on noin 1.4142135623731.)
Ja tietenkin, Sini 45 astetta:
::sin(0.,785398163397448) (radiaaneina tietenkin) Oh, noin 0,707106781186547.
Ja vähän muuntaa astetta Radiaaneina:
::sin( ::pi/180*45 )
lisätietoja siitä, mitä Matematiikka luokka voi tehdä, nähdä, Matematiikka linkki lopussa artikkeli. Tai, odota sitä, käytä PowerShell:
| Get-Member-Staattinen
Bottom line… jos C# kaverit voi tehdä sen, niin voitte!
Joten nyt tiedät… 2016 on karkausvuosi! Ja ainakin tusina eri tapaa!
(ja nopeasti 5 minuutin artiklan kesti yli tunnin…)
Käyttämällä Staattisia Luokkia ja Menetelmiä
Järjestelmä.Math Class
Leave a Reply