我应该如何在VBScript函数中使用ByVal?

时间:2010-10-29 19:53:08

标签: asp-classic vbscript

我在VBScript中遇到了ByVal的一些问题。这是我编写的一个快速示例脚本来说明问题:

<%
Option Explicit

dim PublicDict

Set PublicDict = createobject("Scripting.Dictionary")
PublicDict.Add "MyKey", "What's up doc?"

response.write OutputStringFromDictionary( PublicDict ) & "<br />"
response.write PublicDict("MyKey")

Set PublicDict = nothing


Function OutputStringFromDictionary( ByVal DictionaryParameter )

    DictionaryParameter("MyKey") = replace(DictionaryParameter("MyKey"), "'", "''")

    OutputStringFromDictionary = DictionaryParameter("MyKey")

end Function
%>

此脚本将这些行输出到浏览器:

  

什么是博士?

     

什么是博士?

我希望得到:

  

什么是博士?

     

怎么了文档?

如何使OutputStringFromDictionary不修改原始字典?

1 个答案:

答案 0 :(得分:2)

你必须以某种方式克隆实际数据。按值传递字典可防止字典本身被修改,但您仍然可以指向字典引用的相同项目。您无法修改字典,但可以修改它包含的项目。