Grupa Użytkowników Cincinnati PowerShell (@CincyPowershell) otwiera każde spotkanie przeglądem cmdlet. Dziś przyszła kolej na randkę. Wiele przykładów zostało wykonanych zarówno za pomocą Get-Date, jak i, z jednym przykładem pokazującym, że obsługuje tylko metodę IsLeapYear (). To skłoniło mnie do myślenia …(czasami bolesna rzecz…) i żarówka zapaliła mi się nad głową. Get-Date zwraca instancję systemu.Klasa DateTime, czyli, obiekt, while jest odniesieniem do klasy i zapewnia łatwy dostęp do statycznych metod klasy.
System.DateTime
o co chodzi z tymi dwoma dwukropkami? Są one sposobem PowerShella na wywołanie statycznej metody na klasie. Wracając więc do pytania IsLeapYear (), jest to statyczna metoda klasy DateTime. Aby uzyskać do niego dostęp piszemy :: IsLeapYear(2016).
Get-Date
Get-Date jest cmdletem z wieloma opcjami, ale domyślną opcją jest zwrócenie bieżącej daty i godziny. TJ.::.
klasa, z której został utworzony obiekt, nazywana jest również jej typem. Jaki jest” typ ” randki?,
instancje / Obiekty
Jeśli Get-Date zwraca instancję, Jak mogę to zrobić ? Na dwa sposoby, użyj jednej z metod statycznych, takich jak .Teraz albo .Lub utwórz nowy obiekt za pomocą polecenia cmdlet New-Object.
używając metod statycznych:
$d = ::Now (or just .Now)
$d = ::Today (or just .Dzisiaj)
Using New-Object:
$d = New-Object System.,DateTime (lub po prostu DateTime)
unikalnym aspektem korzystania z nowego obiektu z DateTime jest to, że odzyskujesz obiekt z domyślnymi wartościami dla roku, miesiąca, dnia itp. i nie dzisiaj. Rzeczywisty wynik to „Monday, January 01, 0001 12:00:00 AM”.
Jeśli chcesz utworzyć konkretną datę lub czas, użyj jednego z konstruktorów klasy. (Szczegóły można znaleźć w linku struktura DateTime na końcu artykułu.)
jest tu fajny wpis o klasach, instancjach, statyce od Dona Jonesa.,
i tylko dla zabawy… i tylko w PowerShell 5.0
komu to potrzebne ? Po prostu wywołaj statyczne metody z dowolnego obiektu DateTime! Wszystkie poniższe wyniki dają ten sam wynik, pamiętając, że Get-Date dodaje dodatkowy narzut pobierania bieżącej daty, a następnie ją ignoruje.
(Get-Date)::IsLeapYear(2016)
$d = Get-Date
$D::IsLeapYear(2016)$D = ::Now
$D::IsLeapYear(2016)
a co z PowerShell 3.0?
przykłady dla 5.0 nie działają z 3.0. Musimy poprosić o „klasę”, tzn. jest to typ.,
(Get-Date).GetType()::IsLeapYear(2016)
$d = Get-Date
$D.GetType()::IsLeapYear(2016)$d = ::Now
$D.GetType()::IsLeapYear(2016)
co z PowerShell 4.0?
bije mnie! (Nie miej kopii przede mną w tej chwili.)
Odkryj statyczne metody i właściwości obiektu
Get-Member ma parametr –Static, aby wyświetlić statyczne metody i właściwości obiektu: <| p>
Get-Date/Get-Member-Static
więcej zabawy z metodami statycznymi
Most .,Klasy sieciowe nie są ujawniane w PowerShell jako cmdlety.
na przykład, możesz potrzebować nowego GUID…
:: NewGuid() zwróci nowy obiekt GUID.
:: NewGuid ().ToString () zwróci nowy identyfikator GUID jako łańcuch znaków.
a może jakaś Matematyka?
potrzebujesz wartości PI?
:: PI (lub po prostu ::PI) chodzi o 3.14159265358979 wg PowerShell i .Net.
A co z pierwiastkiem kwadratowym z 2?
:: Sqrt(2) (zobaczmy… chyba chodzi o 1.4142135623731.)
i oczywiście Sinus 45 stopni:
:: sin(0.,785398163397448) (w radianach oczywiście) około 0.707106781186547.
i robiąc małą konwersję z stopni na radiany:
:: sin( ::pi/180*45 )
aby dowiedzieć się więcej o tym, co może zrobić Klasa matematyczna, zobacz link do matematyki na końcu artykułu. Albo, poczekaj na to, użyj PowerShell:
/Get-Member-Static
Bottom line… Jeśli chłopaki z C# mogą to zrobić, to Ty też możesz!
więc teraz wiesz… 2016 to rok przestępny! I co najmniej tuzin różnych sposobów!
(A Szybki 5-minutowy artykuł zajął ponad godzinę…)
używając statycznych klas i metod
System.Matematyka Klasa
Leave a Reply