[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] vbs中如何自建类?

前言: 常常听说这样一句话---对象是类的实例。 对象的属性,对象的方法。一会有括号,一会又没括号,乱乱的。
         如果你亲自动手建个类,就能体会的到这句话的真实含义。
vbs中可以自己建类,并设置获得类的属性方法,看下面的代码-----
1-建立类的f方法
  1. class my
  2.     sub f
  3.       wscript.echo 123
  4.     end sub
  5. end class
  6. set w=new my
  7. w.f  '回显123
复制代码
2--建立类的u属性,类中的变量就是属性
  1. class my
  2.   dim u
  3. end class
  4. set w=new my
  5. w.u=123
  6. wscript.echo w.u  '回显123
复制代码
3--property get  过程,这个过程比property let 或property set过程好用
  1. class my
  2.     property get u(x,y)  
  3.        u=x+y
  4.        wscript.echo u
  5.     end property
  6. end class
  7. set w=new my
  8. w.u 3,7 '回显10
复制代码
4---property let 过程,该过程可以独立使用,但是不如配合get过程好用
所以通常都配合get过程使用。
  1. class my
  2.     property get u(x)  
  3.        v(x)=z   '这是调用let过程的方法
  4.        u=z
  5.        wscript.echo u
  6.     end property
  7.     property let v(x,z)  
  8.       z=x*2
  9.      end property
  10. end class
  11. set w=new my
  12. w.u 7 '回显14
复制代码
5--property set 过程,用法与上类似,特别注意调用方法
  1. class my
  2.     property get u(x)  
  3.        v(x)=z   '这是调用set过程的方法
  4.        u=z
  5.        wscript.echo u
  6.     end property
  7. property set v(x,z)  
  8.       z=x*2
  9.      end property
  10. end class
  11. set w=new my
  12. w.u 10 '回显20
复制代码
最后,get,let,set都可以设置属性,那个方便就用那个。

[ 本帖最后由 myzam 于 2011-3-6 15:34 编辑 ]

本帖最后由 myzam 于 2011-3-27 10:32 编辑

2# myzam
  1. class my
  2.   property get g(x)
  3.     k(x)=method
  4.   end property
  5.   property set k(x,method)
  6.      set o=createobject("wscript.shell")
  7.      method=o.run("calc")
  8.   end property
  9. end class
  10. set nc=new my
  11. nc.g(o)
复制代码
  1. class my
  2.   property get g
  3.     k()=method ' 这里必须要括号,否则被理解为变量赋值let
  4.   end property
  5.   property set k(method)
  6.      set o=createobject("wscript.shell")
  7.      method=o.run("calc")
  8.   end property
  9. end class
  10. set nc=new my
  11. nc.g
复制代码
  1. class my
  2.   property get g(x)
  3.     k(x)=method
  4.   end property
  5.   property set k(x,method)
  6.      set o=createobject("wscript.shell")
  7.      method=o.run(x)
  8.   end property
  9. end class
  10. set nc=new my
  11. nc.g ("calc.exe") '或nc.g "calc"
复制代码

TOP

回复 1楼 的帖子

  1. '4.property set 该方法在格式上和let方法一样,但是这是处理对象属性的过程。
  2. '-----
  3. class test
  4.    property get g(x)
  5.         f(x)=ref
  6.         g=ref
  7.    end property
  8.    property set f(x,ref)
  9.      ref=x.specialfolders("desktop")
  10.    end property
  11.    
  12. end class
  13. set my=new test
  14. set h=createobject("wscript.shell")
  15. msgbox my.g(h)
复制代码

TOP

返回列表