【问题标题】:My WriteConcatenated method doesn't work because of BC30491由于 BC30491,我的 WriteConcatenated 方法不起作用
【发布时间】:2022-01-18 12:41:35
【问题描述】:
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)(错误文档)

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

【问题讨论】:

    标签: arrays vb.net methods subroutine paramarray


    【解决方案1】:

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

    变化:

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

    到:

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

    它会起作用的。

    另一方面,如果WriteConcatenated() 是一个使用Function 关键字声明的函数,该函数使用Return 关键字返回一个值,则将它返回的值传递给Console.WriteLine() 就像你所做的那样工作。

    【讨论】:

    • 是的@galdin,谢谢!这个方法已经在屏幕上写了一些东西。第二次调用 WriteLine 方法没有意义。这完全是我的疏忽。
    • @UfukCanİşbildi 如果答案解决了您的问题,请点击答案左侧的复选标记(勾号)接受它。
    猜你喜欢
    • 2011-11-24
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多