不是所有。net框架类都可使用新对象来创建,例如,如果你尝试使用新对象创建系统。环境或系统。数学对象,你将收到以下错误消息:
<代码> PS>新对象System.Environment 新对象:构造函数没有找到。找不到一个适当的构造函数 System.Environment类型。 行:1字符:11 +新对象& lt; & lt; & lt; & lt;System.Environment PS>新对象System.Math 新对象:构造函数没有找到。找不到一个适当的构造函数 System.Math类型。 行:1字符:11 +新对象& lt; & lt; & lt; & lt;System.Math 代码>
之所以发生这些错误,是因为无法从这些类创建新的对象。这些类是不更改状态的方法和属性的引用库。你无需创建这些类,只需要使用它们。这样的类和方法称为静态类,因为它们不会被创建,销毁或更改。
系统。环境类包含关于当前进程工作环境的一般信息,如果是在Windows PowerShell内工作,该进程为powershell.exe。
如果尝试通过键入系统。环境)|获取成员来查看此类的详细信息,对象类型将报告为系统。RuntimeType,而不是System.Environment:
<代码> PS>(系统。环境)|获取成员 TypeName: System.RuntimeType 代码>
该类型的使用方式示例如下:
<代码> [System.Environment]::命令行 [System.Environment]:: OSVersion [System.Environment]:: HasShutdownStarted 代码>
另外我们还可以使用另外一种静态的类进行数学运算(System.Math)
<代码> PS>[System.Math]:: Sqrt (9) 3. PS>[System.Math]::战俘(2,3) 8 PS>[System.Math]::地板(3.3) 3. PS>[System.Math]::地板(-3.3) 4 PS>[System.Math]::天花板(3.3) 4 PS>[System.Math]::天花板(-3.3) 3 PS>[System.Math]::马克斯(2、7) 7 PS>[System.Math]:: Min (2、7) 2 PS>[System.Math]::截断(9.3) 9 PS>[System.Math]::截断(-9.3) 9 代码>
使用获取成员可以查看到该静态类支持的运算方法:
<代码> PS>(系统。数学)|获取成员静态-MemberType方法 TypeName: System.Math 名MemberType定义 - - - - - - - - - - - - - - - - - - - - - - - - Abs方法静态系统。单Abs(单值)、静态Sy…… 治疗方法静态系统。双治疗(双d) 最佳翻译方法静态系统。双最佳(双d) :静态方法系统。双(双d)每股 静态系统量化方法。双量化(双y,双x) BigMul静态方法系统。Int64 BigMul (Int32, Int32 b) 上限方法静态系统。双上限(aa)、静态Sy…… 因为静态方法系统。双Cos(双d) Cosh静态方法系统。双Cosh(双精度值) DivRem静态方法系统。Int32 DivRem (Int32, Int32 b, Int3……=方法静态系统。布尔=(objA对象、对象… 静态实验方法系统。双Exp(双d) 地板方法静态系统。双楼(双d)、静态系统…… IEEERemainder静态方法系统。双IEEERemainder(双x,两倍…… 日志方法静态系统。双对数(双d)、静态系统…… Log10方法静态系统。双Log10(双d) 马克斯方法静态系统。SByte SByte马克斯(val1, val2 SByte),… 最小方法静态系统。SByte Min (SByte val1 SByte val2),… 战俘静态方法系统。双战俘(双x,双y) ReferenceEquals静态方法系统。布尔ReferenceEquals(对象objA…… 圆的方法静态系统。双圆(aa)、静态系统…… 静态方法系统的信号。Int32标志(SByte价值)、静态系统…… 罪方法静态系统。双罪(aa) Sinh静态方法系统。双Sinh(双精度值) √6方法静态系统。双Sqrt(双d) Tan方法静态系统。双棕褐色(aa) 双曲正切法静态系统。双层双曲正切(双值) 截断方法静态系统。十进制截断(十进制d),静态…代码>
您也可以关注下方的微信公众号获取更多内容