本Blog所发表的所有"原创文章", 未经许可, 禁止以任何形式进行转载.
作者: Edengundam(马涛)
在第五篇教程,我们依然围绕对象的概念进行介绍,这是因为在后续的教程中将会大量引用这些概念。首先建立这些基本的概念,再后面的教程中深入进行理解即可。
我们需要能够简单的理解值类型和引用类型,我们不需要进行区分,只要在本书中遇到这两个名词时能够区分它们的含义。通俗的来说,占用存储空间的少的对象往往以值类型存在,当需要传递值类型的对象时,实际上是将表示该对象的所有信息都复制了一份。而引用类型往往表示占用存储空间较多的对象,如果在传递引用类型的对象时将其所有信息都进行复制可能会浪费过多的时间,同时还会占用过多的内存空间,因此传递引用类型对象时,如果只拷贝一些能够找到保存这些信息的地址,那么我们无论在传递对象的速度上,还是占用的存储空间上都会得到更好的性能。我们可以想象成引用就是你家的地址,你在告诉别人如何去你家的时候,只需要留下地址即可。你并不需要领着别人到一家一次,才能让别人知道你家的位置。
一个类的静态属性和静态方法可以看做是与RuntimeType关联的成员,因为每个类型只会生成一个RuntimeType,因此它们只会有一个副本。而实例属性和实例方法可以看做是与每个实例关联的成员,因此每个实例维护自己这些信息。
我们可以通过Get-Member的Static参数来列出类型的静态成员:
PS C:UsersEden> [int] | Get-Member -Static | Out-String -Width 80
TypeName: System.Int32
Name MemberType Definition
---- ---------- ----------
Equals Method static System.Boolean Equals(Object objA, Object o...
Parse Method static System.Int32 Parse(String s), static System...
ReferenceEquals Method static System.Boolean ReferenceEquals(Object objA,...
TryParse Method static System.Boolean TryParse(String s, Int32& re...
MaxValue Property static System.Int32 MaxValue {get;}
MinValue Property static System.Int32 MinValue {get;}
我们可以看到,System.Int32上有MaxValue和MinValue两个静态属性,它们指示了System.Int32类型的值域:
PS C:\Users\Eden> [int]::MaxValue
2147483647
PS C:\Users\Eden> [int]::MinValue
-2147483648
如果没有指定Static参数,那么Get-Member会显示对象的实例方法:
PS C:\Users\Eden> [int]::MinValue | Get-Member | Out-String -Width 80
TypeName: System.Int32
Name MemberType Definition
---- ---------- ----------
CompareTo Method System.Int32 CompareTo(Int32 value), System.Int32 Comp...
Equals Method System.Boolean Equals(Object obj), System.Boolean Equa...
GetHashCode Method System.Int32 GetHashCode()
GetType Method System.Type GetType()
GetTypeCode Method System.TypeCode GetTypeCode()
ToString Method System.String ToString(), System.String ToString(IForm...
下一篇文章,将为大家介绍格式化cmdlet的实际使用。
阅读(2024) | 评论(0) | 转发(0) |