Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net vbScript System.Collections.ArrayList对象不支持。。。列表。添加_.net_Arraylist_Vbscript - Fatal编程技术网

.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支持;这会派上用场的!谢谢你的信息!