【发布时间】:2012-03-09 15:25:38
【问题描述】:
我们有一个已从 VB6 转换为 VB.Net 的旧组件。
使用 Request("param") 从 ASPX 页面调用 VB 组件,以将可选参数传递给函数调用。这意味着如果参数不存在,则值为 null/nothing。
然后使用Parameters.Append 将参数添加到存储过程的 ADODB 调用中。
在缺少 VB6 时使用时,Request("param") 值在传递给 VB6 组件时被强制转换为空字符串。这意味着已满足 ADODB 调用(对于必需的参数)。
当代码被移植到 VB.Net 时,空 Request("param") 值现在作为空值传递(VB 什么都没有?),如果是 nothing,Parameters.Append 会跳过添加值。这会导致存储过程调用因缺少必需的参数而中断。
我的问题是:
如果我们将组件的函数参数更改为 optional 并具有 paramname as string = "" 默认值,那么 null/nothing 值是否会转换为空字符串,或者 null/nothing 的处理方式与参数的处理方式不同不见了?
对使用 null 这个词表示歉意,但我 99% 的工作都是 C# :)
【问题讨论】:
标签: vb.net string vb6 parameter-passing optional-parameters