gpt4 book ai didi

c# - Vb.net 中的字符串值 Try Catch

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:12 25 4
gpt4 key购买 nike

我很难理解为什么这总是返回一个空变量

    Private Function checkEnvelopeStatus(aEnvelopeID As String) As String
Dim lEnvelopeStatusMessage As String

Try
Dim lEnvelopeStatus = mDsapi.RequestStatusEx(aEnvelopeID)
lEnvelopeStatusMessage = "Subject:" & lEnvelopeStatus.Subject & vbCrLf & "Status Code: " & lEnvelopeStatus.Status
Catch ex As Exception
MessageBox.Show(ex.StackTrace, ex.Message)
End Try

Return lEnvelopeStatusMessage
End Function

然而这将返回我想要的消息

    Private Function checkEnvelopeStatus(aEnvelopeID As String) As String
Dim lEnvelopeStatusMessage As String

Try
Dim lEnvelopeStatus = mDsapi.RequestStatusEx(aEnvelopeID)
aEnvelopeID = "Subject:" & lEnvelopeStatus.Subject & vbCrLf & "Status Code: " & lEnvelopeStatus.Status
Catch ex As Exception
MessageBox.Show(ex.StackTrace, ex.Message)
End Try

Return aEnvelopeID
End Function

似乎在我的 TRy catch 关闭后,当它是函数局部变量时字符串的值被清除了。然而,当我用传入的参数替换它时,我能够保留 Try Catch 外部的字符串吗?我主要是一名 C#/C++ 开发人员,所以这让我感到困惑。谁能解释为什么会发生这种情况?

这是上面代码的一个更加净化的版本

Public Function foo(a As String) As String
Dim b As String
Try
b = "banana:"
Catch ex As Exception

End Try

Return b
End Function

它表现出相同的行为。

最佳答案

在 C# 中,您无法在执行流中存在路径的地方编译方法代码,这可能导致在未初始化返回值的情况下退出方法。使用未分配的变量会出现编译器错误。

在 VB.NET 中,如果您更改了选项,就可以避免错误"Use of variable before assignement"WarningError 在项目选项的 Build 页面中。 (我强烈建议这样做)

(不确定选项的确切名称,因为我使用的是本地化版本的 Visual Studio)

关于c# - Vb.net 中的字符串值 Try Catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14061835/

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