properties - 经典 ASP - 将属性作为 byref 传递

标签 properties asp-classic pass-by-reference byref

在经典 ASP 中,我有一个对象,将其命名为 bob。然后,它有一个名为 name 的属性,带有 letget 方法。

我有一个函数如下:

sub append(byref a, b)
    a = a & b
end sub

这只是为了更快地向变量添加文本。我对 prepend 也有同样的做法,只是 a = b & a。我知道说 bob.name = bob.name & "andy" 会很简单,但我尝试使用上述函数,但它们都不起作用。

我的调用方式是append bob.name, "andy"。任何人都可以看出这有什么问题吗?

最佳答案

不幸的是,这是 VBScript 的一个特性。它记录在 http://msdn.microsoft.com/en-us/library/ee478101(v=vs.84).aspx 中在“类里面的争论”下。另一种方法是使用函数。这是说明差异的示例。您可以使用“cscript filename.vbs”从命令行运行它。

sub append (a, b)
   a = a & b
end sub

function Appendix(a, b)
   Appendix = a & b
end function

class ClsAA
   dim m_b
   dim m_a
end class
dim x(20)

a = "alpha"
b = "beta"
wscript.echo "variable works in both cases"
append a, b
wscript.echo "sub " & a
a = appendix(a, b)
wscript.echo "function " & a

x(10) = "delta"
wscript.echo "array works in both cases"
append x(10), b
wscript.echo "sub " & x(10)
x(10) = appendix( x(10), b)
wscript.echo "function " & x(10)

set objAA = new ClsAA
objAA.m_a = "gamma"
wscript.echo "Member only works in a function"
append objAA.m_a, b
wscript.echo "sub " & objAA.m_a
objAA.m_a = appendix(objAA.m_a, b)
wscript.echo "function " & objAA.m_a

关于properties - 经典 ASP - 将属性作为 byref 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14790762/

相关文章:

c# - 什么更好? INotifyPropertyChanged 或具有单独的 *Changed 事件?

python - 如何在 python 中读取多行 .properties 文件

java - 如何在 Java 中重试打开属性文件

asp-classic - 将 FileSystemObject 保存为 UTF

c++ - 为什么我应该更喜欢对智能指针的引用而不是智能指针作为 C++ 中的参数

c# - 在 C# 中引用时,VB 程序集中的默认公共(public)只读属性未出现

caching - 经典asp中应用程序对象的大小限制是多少?

asp-classic - ASP 中的后台文件复制过程

c++ - 按引用调用和按值调用

java - Java 是 "pass-by-reference"还是 "pass-by-value"?