0
Imports System

Module Program
    Sub WriteConcatenated(ByVal ParamArray TextArr As String())
        For I As Integer = 0 To TextArr.Length - 1
            For J As Integer = 0 To TextArr.Length - 1
                Dim ConcatenatedText = TextArr(I) + TextArr(J)

                For Each Text As String In TextArr
                    If Text = ConcatenatedText Then
                        Console.WriteLine(Text)
                    End If
                Next
            Next
        Next
    End Sub

    Sub Main(args As String())
        Console.WriteLine(WriteConcatenated("five", "cents" "twenty", "twentycents"))
        Console.ReadLine()
    End Sub
End Module

如果有一个由参数数组的其他元素串联形成的元素,我想将它们打印到屏幕上。

例如:上述参数数组中第三个索引的“twentycents”是数组第二个索引处的“twenty”和数组中第一个索引处的“cents”的串联。然后数组的第三个元素将被打印到屏幕上。

就我而言,代码没有错误,但是 Visual Basic 的编译器给了我

BC30491:表达式不产生值

https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/error-messages/expression-does-not-produce-a-value?f1url=%3FappId%3Droslyn%26k%3Dk (BC30491)(错误文档)

我应该如何纠正这个错误?

4

1 回答 1

1

WriteConcatenated()是一个不“返回”值的子程序。

改变:

Console.WriteLine(WriteConcatenated("five", "cents" "twenty", "twentycents"))

至:

WriteConcatenated("five", "cents" "twenty", "twentycents")

它会起作用。

另一方面,如果使用关键字WriteConcatenated()声明的函数使用Function关键字返回值,则将其返回的值Return传递给Console.WriteLine()您所做的那样会起作用。

于 2021-12-15T10:18:10.913 回答