首页 > 解决方案 > 我无法理解将参数传递给函数

问题描述

我真的很难理解将参数传递给函数。

我想使用函数,这样我就不必重复我理解它们的用途的代码块。该函数会将某些内容返回给调用它的内容

例子:

我编写了这个函数,它从注册表中获取 Name 的值并将其返回给变量 s

Public Function DecodingModes(s As String)

    s = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Ian\MyApp\", "Name", Nothing)
    Return s

End Function

在按钮单击事件中,我有以下内容。

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim MyName As String
    MyName = CType(DecodingModes("what goes in here"), String)
    MsgBox(MyName)
End Sub

我对它的作用是这样的......

  1. 创建一个名为 MyName 的变量作为字符串
  2. 然后调用该函数,并将返回的内容分配给 MyName 变量
  3. 然后显示一个 MessageBox,显示函数返回的值

我不明白的是

MyName = CType(DecodingModes("what goes in here"), String)

为什么我在 (" ") 中输入的内容并不重要

我在网上看过关于函数和传递参数的教程,但它们似乎都在处理数字而不是文本。

谁能帮忙

伊恩

标签: vb.net

解决方案


对于正确的编程方法,您必须将整个替换Function为:

Public Function DecodingModes()
   Return My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Ian\MyApp\", "Name", Nothing)
End Function

不需要“s”作为参数,因为您将通过每次调用DecodingModes函数来重新创建它

一个函数通常用于详细说明某些内容,然后将结果返回给您。如果您有一个需要详细说明的变量,或者其他详细说明(在您的函数内部)需要它们作为详细说明的一部分,您可以将其作为参数传递。作为正确的编程技术,您需要记住的另一件事是您应该指定返回类型(例如,字符串、整数或其他),否则您的函数返回类型始终是 Object 类型,这意味着您需要在每次调用时转换类型。


推荐阅读