.net vbScript System.Collections.ArrayList对象不支持。。。列表。添加
使用我的.net vbScript System.Collections.ArrayList对象不支持。。。列表。添加,.net,arraylist,vbscript,.net,Arraylist,Vbscript,使用我的CreateObject(“System.Collections.ArrayList”) 我在vbscript中遇到的错误 “Microsoft VBScript运行时错误:对象不支持此属性或方法:'list.Add'” 根据教程,我知道您可以在vbscript中使用COM包装的.Net组件;那么为什么这不起作用呢 其他信息: oList.Add objNode.value Option Explicit Dim oList : Set oList = CreateObject("S
CreateObject(“System.Collections.ArrayList”)
我在vbscript中遇到的错误
“Microsoft VBScript运行时错误:对象不支持此属性或方法:'list.Add'”
根据教程,我知道您可以在vbscript中使用COM包装的.Net组件;那么为什么这不起作用呢
其他信息:
oList.Add objNode.value
Option Explicit
Dim oList : Set oList = CreateObject("System.Collections.ArrayList")
oList.Add "Banana"
oList.Add "Apple"
oList.Add "Orange"
oList.Add "Grapes"
oList.Add "Plum"
oList.Sort
Dim oItem
For Each oItem In oList
WScript.Echo oItem
Next
当我在VS08中调试并向列表中添加一个手表时,它显示无法评估子级。
监视objNode.value
的值有两个字符串。(这是预期行为)
如果您对我的vbscript有任何意见;请让我知道-刚开始学习,不知道最佳实践。更改:
oList.Add objNode.value
Option Explicit
Dim oList : Set oList = CreateObject("System.Collections.ArrayList")
oList.Add "Banana"
oList.Add "Apple"
oList.Add "Orange"
oList.Add "Grapes"
oList.Add "Plum"
oList.Sort
Dim oItem
For Each oItem In oList
WScript.Echo oItem
Next
oList.Add=objNode.value
…至:
oList.Add objNode.value
Option Explicit
Dim oList : Set oList = CreateObject("System.Collections.ArrayList")
oList.Add "Banana"
oList.Add "Apple"
oList.Add "Orange"
oList.Add "Grapes"
oList.Add "Plum"
oList.Sort
Dim oItem
For Each oItem In oList
WScript.Echo oItem
Next
或(感谢@Ansgar的指导)
这里有一个演示:
oList.Add objNode.value
Option Explicit
Dim oList : Set oList = CreateObject("System.Collections.ArrayList")
oList.Add "Banana"
oList.Add "Apple"
oList.Add "Orange"
oList.Add "Grapes"
oList.Add "Plum"
oList.Sort
Dim oItem
For Each oItem In oList
WScript.Echo oItem
Next
预期输出:
oList.Add objNode.value
Option Explicit
Dim oList : Set oList = CreateObject("System.Collections.ArrayList")
oList.Add "Banana"
oList.Add "Apple"
oList.Add "Orange"
oList.Add "Grapes"
oList.Add "Plum"
oList.Sort
Dim oItem
For Each oItem In oList
WScript.Echo oItem
Next
苹果公司
香蕉
葡萄
橙色
梅子
你可以在Eric Lippert的《VB和VBScript》中找到更多关于括号使用的古怪规则。我明天将在工作中尝试这一点,并在成功后给你打分。调用一个没有()运算符的函数,而执行赋值时没有a=,这是多么奇怪啊。Vbscript是一个。。。不同。。Languagexphill64x—实际上,VBScript
函数
(返回值)确实要求其参数用括号括起来。但奇怪的是,对于子类
(不返回值),括号被省略。有关将全面的VBScript参考下载为Windows帮助文件的指南,请参阅。最后,请注意,oList.Add
是一个带有单个参数的Sub
。而=
同时充当赋值运算符和相等性测试的双重角色。@DavidRR否。是否必须使用括号取决于调用过程或函数的方式。如果调用函数时未计算返回值(例如,MyFunction 23、42),则不得使用括号。OTOH,如果使用Call
语句调用过程(例如callmysub(23,42)
),则必须使用括号。有关详细信息,请参阅VBScript中圆括号的使用。@Ansgar-感谢您提供Eric的信息性文章的指针。关于在中使用括号和VBScript的更多讨论。@DavidRR我接受了你的回答;我没有测试代码。我不得不转向另一个方向-客户端计算机可能没有安装.NET,因此我不得不使用自定义的array.vbs。一旦我们放弃XP支持;这会派上用场的!谢谢你的信息!