Cincinnati PowerShell User Group (@CincyPowershell) otevře každé setkání s recenzi z rutiny. Dnes je na řadě Get-Date. Mnoho příkladů bylo provedeno jak s get-Date, tak s jedním příkladem, který ukazuje, že podporuje pouze metodu IsLeapYear (). To mě přimělo přemýšlet… (někdy bolestivá věc…) a žárovka se mi rozsvítila nad hlavou. Get-Date vrací instanci systému.Třída DateTime, tj., objekt, zatímco je odkazem na třídu a poskytuje snadný přístup ke statickým metodám třídy.
systém.DateTime
Co je s dvěma dvojtečkami? Jsou PowerShell způsob, jak volat statickou metodu na třídě. Takže když se vrátíme k otázce IsLeapYear (), jedná se o statickou metodu třídy DateTime. Pro přístup k němu píšeme:: IsLeapYear (2016).
get-Date
get-Date je cmdlet s mnoha možnostmi, ale výchozí možností je vrátit aktuální datum a čas. Tj.:: nyní.
třída, ze které byl objekt vytvořen, se také nazývá jeho typ. Jaký je tedy“ typ “ rande?,
instance / objekty
Pokud Get-Date vrátí instanci, jak bych to mohl udělat ? Dva způsoby, použijte jednu ze statických metod, jako je .Teď nebo .Dnes, nebo vytvořit nový objekt pomocí nového objektu cmdlet.
pomocí statických metod:
$d=: nyní (nebo jen .Nyní)
$ d=:: dnes (nebo jen .Dnes)
Pomocí New-Object:
$d = New-Object System.,DateTime (nebo jen DateTime)
unikátní aspekt pomocí New-Object s DateTime je, že dostanete zpět objekt s výchozí hodnoty pro rok, měsíc, den, atd. a ne dnešní rande. Skutečný výsledek je „Pondělí 01. ledna 0001 12:00:00“.
Pokud chcete vytvořit konkrétní datum nebo čas, použijte jednu z třídy konstruktory. (Podrobnosti viz odkaz struktury DateTime na konci článku.)
je tu pěkný zápis o třídách, instancích, statice zde od Don Jones.,
a jen pro zábavu… a pouze v PowerShell 5.0
kdo potřebuje ? Stačí zavolat statické metody z libovolného objektu DateTime! Následující všechny produkují stejný výsledek, mějte na paměti, že Get-Date přidává další režii načítání aktuálního data a poté jej ignoruje.
(Get-Date)::IsLeapYear(2016)
$d = Get-Date
$d::IsLeapYear(2016)$d = ::
$d::IsLeapYear(2016)
Co PowerShell 3.0?
příklady pro 5.0 nefungují s 3.0. Musíme požádat o“ třídu“, tj. je to Typ.,
(get-Date).GetType()::IsLeapYear(2016)
$d = Get-Date
$d.GetType()::IsLeapYear(2016)$d = ::
$d.GetType()::IsLeapYear(2016)
Co PowerShell 4.0?
bije mě! (Nemám kopii přede mnou právě teď.)
Objevte Statické Metody a Vlastnosti Objektu
Get-member má –Statický parametr pro zobrazení statické metody a vlastnosti objektu:
-Datum | Get-member -Statický
Více Zábavy S Statické Metody
Většina .,Net třídy nejsou vystaveny v PowerShell jako cmdlets.
například budete potřebovat nové GUID …
:: NewGuid () vrátí nový objekt GUID.
:: NewGuid ().toString () vrátí nové GUID jako řetězec.
a co nějaká Matematika?
potřebujete hodnotu PI?
:: PI (nebo jen:: PI) je to asi 3.14159265358979 podle PowerShell a. Net.
Co druhá odmocnina 2?
:: Sqrt (2) (podívejme se… myslím, že je to asi 1.4142135623731.)
a samozřejmě sinus 45 stupňů:
:: sin (0.,785398163397448) (v radiánech samozřejmě) Oh, asi 0.707106781186547.
A trochu převod ze stupňů na Radiány:
::sin( ::pi/180*45 )
Pro více o tom, co Matematika třída může udělat, viz Matematický odkaz na konci článku. Nebo počkejte na to, použijte PowerShell:
/ Get-Member-Static
Sečteno a podtrženo … pokud to kluci c# dokážou,pak můžete také!
takže teď víte… 2016 je přestupný rok! A alespoň tucet různých způsobů!
(a rychlý 5 minutový článek trval hodinu…)
pomocí statických tříd a metod
systém.Třída matematiky
Leave a Reply