找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20491|回复: 3

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

[复制链接]
发表于 2011-3-6 08:49:54 | 显示全部楼层 |阅读模式
前言: 常常听说这样一句话---对象是类的实例。 对象的属性,对象的方法。一会有括号,一会又没括号,乱乱的。
         如果你亲自动手建个类,就能体会的到这句话的真实含义。
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 编辑 ]
 楼主| 发表于 2011-3-17 23:05:23 | 显示全部楼层

回复 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)
复制代码
 楼主| 发表于 2011-3-27 10:20:42 | 显示全部楼层
本帖最后由 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"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 20:36 , Processed in 0.018875 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表