1

我在 vb 脚本或 VBA 中基于对象的编程中有一个基本问题。通常,当我们在 Java 中使用面向对象编程时,我们使用对变量或函数的对象引用,例如:

Obj.Add() or Obj.i=5

但在 VBA 和 VB 脚本中,我们使用 Obj.Property.Property 或 Obj.Method.Property 之类的东西,例如:

Set sib = Tchilds.item(j).childNodes 'where item is a method defined in DOM.

我怀疑这在逻辑上怎么可能。

4

1 回答 1

2

如果您将 Properties 视为 Subs/Functions/Methods(如 getter/setter)的表亲,那么这个谜团应该消失了。“访问对象成员”运算符(点)“有效”,只要左边有(引用)一个对象,右边有一个有效的成员 - 方法、变量/字段或属性 - 名称。只要x.y表达式计算为一个对象,链接点就“有效”,因此 iny.z z是该对象的成员。最后一个可能是非对象(右侧没有其他点)。

>> Set oFS = CreateObject("Scripting.FileSystemObject")
>> Set oFld = oFS.GetFolder(".") -- method .GetFolder returns Folder object
>> Set oFiles = oFld.Files -- Property .Files returns collection object
>> WScript.Echo oFiles.Count -- oFiles has a simple/non-object member .Count
>>
2
>> WScript.Echo oFiles.Count.ToString() -- .Count is not an object, but a number
>>
Error Number:       424
Error Description:  Object required
>> WScript.Echo oFS.GetFolder(".").Files.Count -- chaining
                obj obj            obj   var
>>
2
于 2013-02-23T17:54:28.707 回答