gpt4 book ai didi

vb.net - 从 VB6 转换为 VB.Net 后字符串默认参数值问题

转载 作者:行者123 更新时间:2023-12-04 17:55:02 25 4
gpt4 key购买 nike

我们有一个已从 VB6 转换为 VB.Net 的遗留组件。

VB 组件是从 ASPX 页面调用的,使用 Request("param") 将可选参数传递给函数调用。这意味着如果参数不存在,则值为 null/nothing。

然后使用 Parameters.Append 将参数添加到存储过程的 ADODB 调用中。 .

当从 VB6 缺失使用时,Request("param") 值在传递给 VB6 组件时被强制转换为空字符串。这意味着 ADODB 调用得到满足(对于必需的参数)。

当代码被移植到 VB.Net 时,null Request("param") 值现在作为 null 值传递(VB 什么都没有?)和 Parameters.Append如果是 nothing,则跳过添加值.这导致存储过程调用中断,因为缺少必需的参数。

我的问题是:

如果我们将组件的函数参数改为optional并有 paramname as string = ""默认值,null/nothing 值是否会转换为空字符串,或者 null/nothing 是否与简单丢失的参数不同?

为使用 null 一词表示歉意,但我 99% 的工作都是 C# :)

最佳答案

如果您通过 Nothing作为默认为空字符串的 Optional String 参数的参数,方法内的变量将具有值 Nothing .它不会有空字符串的值。它们是两个不同的值,因为 .Net 中的字符串是引用类型。您应该在方法顶部添加代码来替换 Nothing对于那些带有空字符串的参数。

关于vb.net - 从 VB6 转换为 VB.Net 后字符串默认参数值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9636557/

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