当前位置:  开发笔记 > 编程语言 > 正文

为什么返回字符串的VB.Net函数实际上只返回一个字符?

如何解决《为什么返回字符串的VB.Net函数实际上只返回一个字符?》经验,为你挑选了1个好方法。

我正在调用一个返回字符串的函数,但它实际上只返回它应该返回的字符串的第一个字符.

这是一段代码示例,用于重新创建我遇到的问题:

Public Function GetSomeStringValue(Value as Integer) As String
    ... Code Goes here
    Return Some_Multicharacter_string
End Function

函数调用如下所示:

SomeStringValue = GetSomeStringValue(Value)

为什么这不会返回整个字符串?



1> Pops..:

注意:这个答案最初由OP,Kibbee编写,作为自我回答.但是,它写在问题的正文中,而不是作为一个实际的单独答案.由于OP拒绝其他用户(包括主持人)的重复请求,要求根据网站规则重新发布,我自己重新发布.

在尝试了一百种不同的东西之后,重构我的代码,多次调试调试器中的代码,甚至让同事看看问题,我终于在一个天才的闪光中找到了答案.

在我重构代码的某些时候,我更改了函数以摆脱Value参数,保留如下:

Public Function GetSomeStringValue() As String
    ... Code Goes here
    Return Some_Multicharacter_String
End Function

但是,我忽略了在调用函数时删除我传入的参数:

SomeStringValue = GetSomeStringValue(Value)

编译器没有抱怨,因为它解释了我正在做的事情,因为调用没有括号的函数,这是VB6时代的遗留功能.然后,Value参数转换为从函数返回的字符串(也称为字符数组)的数组索引.

所以我删除了参数,一切正常:

SomeStringValue = GetSomeStringValue()

我发布这个,以便其他人在遇到问题时能够识别问题,并且能够比我更快地解决问题.我花了很长时间才解决,我希望我可以节省一些时间.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有