您好,登錄后才能下訂單哦!
不是所有 .NET Framework 類都可使用 New-Object 來創(chuàng)建。 例如,如果你嘗試使用 New-Object 創(chuàng)建 System.Environment 或 System.Math 對象,你將收到以下錯誤消息:
PS> New-Object System.Environment
New-Object : Constructor not found. Cannot find an appropriate constructor for
type System.Environment.
At line:1 char:11
+ New-Object <<<< System.Environment
PS> New-Object System.Math
New-Object : Constructor not found. Cannot find an appropriate constructor for
type System.Math.
At line:1 char:11
+ New-Object <<<< System.Math
之所以發(fā)生這些錯誤,是因?yàn)闊o法從這些類創(chuàng)建新的對象。 這些類是不更改狀態(tài)的方法和屬性的引用庫。 你無需創(chuàng)建這些類,只需要使用它們。 這樣的類和方法稱為靜態(tài)類,因?yàn)樗鼈儾粫粍?chuàng)建、銷毀或更改。
System.Environment 類包含關(guān)于當(dāng)前進(jìn)程工作環(huán)境的一般信息,如果是在 Windows PowerShell 內(nèi)工作,該進(jìn)程為 powershell.exe。
如果嘗試通過鍵入 [System.Environment] | Get-Member 來查看此類的詳細(xì)信息,對象類型將報告為 System.RuntimeType,而不是 System.Environment:
PS> [System.Environment] | Get-Member
TypeName: System.RuntimeType
該類型的使用方式示例如下:
[System.Environment]::Commandline
[System.Environment]::OSVersion
[System.Environment]::HasShutdownStarted
另外我們還可以使用另外一種靜態(tài)的類進(jìn)行數(shù)學(xué)運(yùn)算(System.Math)
PS> [System.Math]::Sqrt(9)
3
PS> [System.Math]::Pow(2,3)
8
PS> [System.Math]::Floor(3.3)
3
PS> [System.Math]::Floor(-3.3)
-4
PS> [System.Math]::Ceiling(3.3)
4
PS> [System.Math]::Ceiling(-3.3)
-3
PS> [System.Math]::Max(2,7)
7
PS> [System.Math]::Min(2,7)
2
PS> [System.Math]::Truncate(9.3)
9
PS> [System.Math]::Truncate(-9.3)
-9
使用get-member可以查看到該靜態(tài)類支持的運(yùn)算方法:
PS> [System.Math] | Get-Member -Static -MemberType Methods
TypeName: System.Math
Name MemberType Definition
---- ---------- ----------
Abs Method static System.Single Abs(Single value), static Sy...
Acos Method static System.Double Acos(Double d)
Asin Method static System.Double Asin(Double d)
Atan Method static System.Double Atan(Double d)
Atan2 Method static System.Double Atan2(Double y, Double x)
BigMul Method static System.Int64 BigMul(Int32 a, Int32 b)
Ceiling Method static System.Double Ceiling(Double a), static Sy...
Cos Method static System.Double Cos(Double d)
Cosh Method static System.Double Cosh(Double value)
DivRem Method static System.Int32 DivRem(Int32 a, Int32 b, Int3...
Equals Method static System.Boolean Equals(Object objA, Object ...
Exp Method static System.Double Exp(Double d)
Floor Method static System.Double Floor(Double d), static Syst...
IEEERemainder Method static System.Double IEEERemainder(Double x, Doub...
Log Method static System.Double Log(Double d), static System...
Log10 Method static System.Double Log10(Double d)
Max Method static System.SByte Max(SByte val1, SByte val2), ...
Min Method static System.SByte Min(SByte val1, SByte val2), ...
Pow Method static System.Double Pow(Double x, Double y)
ReferenceEquals Method static System.Boolean ReferenceEquals(Object objA...
Round Method static System.Double Round(Double a), static Syst...
Sign Method static System.Int32 Sign(SByte value), static Sys...
Sin Method static System.Double Sin(Double a)
Sinh Method static System.Double Sinh(Double value)
Sqrt Method static System.Double Sqrt(Double d)
Tan Method static System.Double Tan(Double a)
Tanh Method static System.Double Tanh(Double value)
Truncate Method static System.Decimal Truncate(Decimal d), static...
您也可以關(guān)注下方的微信公眾號獲取更多內(nèi)容
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。