Board logo

标题: [转载教程] [PowerShell教程][05]PowerShell面向对象基础之二 [打印本页]

作者: wankoilz    时间: 2011-5-22 10:08     标题: [PowerShell教程][05]PowerShell面向对象基础之二

[PowerShell教程][01]初识PowerShellhttp://bbs.bathome.net/thread-12415-1-1.html
[PowerShell教程][02]PowerShell基础知识之一http://bbs.bathome.net/thread-12416-1-1.html
[PowerShell教程][03]PowerShell数据类型之整型http://bbs.bathome.net/thread-12417-1-1.html
[PowerShell教程][04]PowerShell面向对象基础之一http://bbs.bathome.net/thread-12418-1-1.html
[PowerShell教程][05]PowerShell面向对象基础之二http://bbs.bathome.net/thread-12419-1-1.html
[PowerShell教程][06]PowerShell中格式化命令和输出命令http://bbs.bathome.net/thread-12420-1-1.html
[PowerShell教程][07]PowerShell中Write族cmdlet的介绍和使用http://bbs.bathome.net/thread-12421-1-1.html
[PowerShell教程][08]字符串字面值http://bbs.bathome.net/thread-12422-1-1.html
[PowerShell教程][09]PowerShell中的数组使用http://bbs.bathome.net/thread-12423-1-1.html
[PowerShell教程][10]PowerShell中的HashTable的使用http://bbs.bathome.net/thread-12424-1-1.html
[PowerShell教程][11]PowerShell中的加法运算http://bbs.bathome.net/thread-12425-1-1.html

说明:教程转自 http://bbs.winos.cn/thread-35543-1-1.html



作者: Edengundam(马涛)


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





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2