【问题标题】:Calling a module procedure that has a parameter of a class调用具有类参数的模块过程
【发布时间】:2015-08-13 14:29:20
【问题描述】:

我正在为 FedEx 和我们的 Universe 数据库编写 API,FedEx 代码已经编写,但我现在需要创建一个字符串来写回我们的 Universe 数据库。问题是我如何将这个跟踪号变成一个变量,以便我可以在那个字符串中使用它。这是模块中的过程:

Public Sub ShowTrackingDetails(ByRef TrackingIds() As TrackingId)
        ' Tracking information for each package
        Console.WriteLine()
        Console.WriteLine("Tracking details")
        If (TrackingIds IsNot Nothing) Then
            For Each trackingId As TrackingId In TrackingIds
                Console.WriteLine("Tracking # {0} Form ID {1}", trackingId.TrackingNumber, trackingId.FormId)

            Next
        End If
    End Sub

在 for each 方法中trackingId.TrackingNumber 返回我需要的内容。

【问题讨论】:

  • 您的问题是关于 使用类参数调用方法 还是为每个方法返回一些字符串?因为它是一个子,它不会“返回”任何东西
  • 这就是我所害怕的,但是如果我在运行代码时将该数字存储在过程中的变量中会怎样。我可以在我的表单类中使用调用该变量或类似的东西吗?当代码运行时,我只需要第一次。
  • 把它改成一个函数让它返回一些东西,但它只能返回一个东西。假设TrackingId 是一个正确的类,您可以添加代码以您需要的任何格式返回ID。仍然不确定实际的问题是什么

标签: vb.net api fedex


【解决方案1】:

您可以使用ToString方法将数字转换为字符串

Dim numberAsString As String = trackingId.TrackingNumber.ToString()

但是,在数据库中将数字存储为数字而不是字符串可能更好。

如果您希望变量在 ShowTrackingDetails 方法之外可用,您可以将其声明为 Public 或 Private。

Private numberAsString As String
Public Sub ShowTrackingDetails(ByRef TrackingIds() As TrackingId)
    'your code
    numberAsString = trackingId.TrackingNumber.ToString()
    'your code
End Sub

【讨论】:

  • 但如果我这样做,我可以在程序之外的其他地方使用该字符串变量吗?这就是我必须做的事情
  • @chrisbahr:有两种方法可以使字符串以不同的方式可用。第一种是在调用方法时将其用作参数。另一种是在ShowTrackingDetails方法之外将变量声明为PrivatePublic。我将编辑我的答案以包含它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 2021-11-24
相关资源
最近更新 更多