我正在开展另一个学校项目,我正在学习如何创建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
答案 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)
由于您要返回StringBuilder
(sb
)的字符串值,您必须在其上调用ToString
,这将返回字符串值。
Return sb.ToString()