gpt4 book ai didi

asp-classic - 在经典 ASP 中使用字典中的类

转载 作者:行者123 更新时间:2023-12-01 21:47:55 25 4
gpt4 key购买 nike

我通常做C#,但继承了一个经典的ASP项目。

我定义了一个类:

    Class clsPayment    
Public Name
End Class

Set objPayment = New clsPayment
objPayment.Name = "StackOverflow payment"

还有一本字典:

Set colPayments = CreateObject("Scripting.Dictionary")
colPayments.Add 1, objPayment

稍后读取对象时,我无法调用公共(public)字段:

For i = 0 to colPayments.Count - 1
objPayment = colPayments.Item(i)
Response.Write(objPayment.Name)
Next

这会在 Response.Write 行上引发错误:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

我做错了什么?

最佳答案

将 for 循环更改为:-

For Each key in colPayments
Set objPayment = colPayments(key)
Response.Write objPayment.Name
Next

有几点需要指出。

使用 Set 分配对象。在 VBScript 中,将对象分配给变量时,需要使用上面的 Set 关键字。

字典并不是真正的集合 您似乎试图将字典用作序数集合,但事实并非如此。脚本字典严格来说是一个关联数组,并且没有可靠的排序。与 .NET 字典不同,对象上的 For Each 返回仅使用的键的枚举,而不是 KeyValue 对。

使用过程语句时避免使用括号 请注意,对 Response.Write 的调用缺少括号。虽然您经常会看到,当只有一个参数(将其解释为表达式)时,它们会成功使用,但当需要 2 个或更多参数时,就会出现语法错误。

关于asp-classic - 在经典 ASP 中使用字典中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1728464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com