如何让函数返回字符串值?

时间:2013-10-22 19:14:42

标签: .net vb.net function

我正在开展另一个学校项目,我正在学习如何创建Function。在这个例子中,我需要创建一个Function来列出我手动输入的“最佳捐赠者”。我遇到的错误是我创建了我的Function,但最后当我尝试用Return String结束时,我收到语法错误,我不确定是什么我需要把它放在后面。

Public Class Form1
    Function GetTopDonors() As String
        Dim sb As New StringBuilder()
        sb.Append("Frank, $1,000,000")
        sb.Append("Joe, $980,000")
        Return String
    End Function

    Private Sub btnDisplay_Click(sender As System.Object, e As System.EventArgs) Handles btnDisplay.Click
        Dim TopDonors As String = GetTopDonors()
        txtDonorList.Text = TopDonors
    End Sub
End Class

enter image description here

4 个答案:

答案 0 :(得分:5)

将其更改为:Return sb.ToString(),它应该适合您。这将返回StringBuilder的String值,这是你想要的,因为函数返回一个String。 String本身就是一种类型,因此您无法返回它 - 您必须返回它的实例。

有意义吗?

答案 1 :(得分:3)

String类型,而不是变量,因此对Return String没有意义。您需要返回变量的值,而不是变量的类型。因此,虽然您不能Return String,但您可以返回 字符串的任何变量,如下所示:

Function GetTopDonors() As String
    Dim x As String
    Return x
End Function

在您的情况下,您使用的是StringBuilder,实际上并非String,但可以通过调用String方法将其转换为ToString ,像这样:

Function GetTopDonors() As String
    Dim sb As New StringBuilder()
    sb.Append("Frank, $1,000,000")
    sb.Append("Joe, $980,000")
    Dim myString As String = sb.ToString()
    Return myString
End Function

或者,您可以跳过创建myString变量并直接返回转换后的值,如下所示:

Function GetTopDonors() As String
    Dim sb As New StringBuilder()
    sb.Append("Frank, $1,000,000")
    sb.Append("Joe, $980,000")
    Return sb.ToString()
End Function

你很快就会发现,但我还要提到你可能想要AppendLine而不是Append

答案 2 :(得分:1)

使用StringBuilder.ToString()方法从构建器中获取字符串。

Function GetTopDonors() As String
    Dim sb As New StringBuilder()

    sb.Append("Frank, $1,000,000")
    sb.Append("Joe, $980,000")

    Return sb.ToString()
End Function

答案 3 :(得分:1)

由于您要返回StringBuildersb)的字符串值,您必须在其上调用ToString,这将返回字符串值。

Return sb.ToString()