在 VB.Net 中为每个循环识字我的字符串

literate for each loop my string in VB.Net

Dim txtLinqSum1Ad, txtLinqSum2Ad, txtLinqSum3Ad, txtLinqSum4Ad as String

而不是写这个东西

   TextBox1.AppendText(txtLinqSum1Ad & vbNewLine)
   TextBox1.AppendText(txtLinqSum2Ad & vbNewLine)
   TextBox1.AppendText(txtLinqSum3Ad & vbNewLine)
   TextBox1.AppendText(txtLinqSum4Ad & vbNewLine)

我想做这样的事情

For i as integer = 0 to 3

TextBox1.AppendText(txtLinqSum & i & Ad & vbNewLine)

Next

你觉得这可能吗?当我有很多字符串时它会很有用吗?

是的,可以使用 CallByName() 或通过反射(更长的语法)。

要使 CallByName() 正常工作,您的变量必须 PUBLIC 在 Form/Class 级别:

Public Class Form1

    Public txtLinqSum1Ad, txtLinqSum2Ad, txtLinqSum3Ad, txtLinqSum4Ad As String

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        txtLinqSum1Ad = "A"
        txtLinqSum2Ad = "B"
        txtLinqSum3Ad = "C"
        txtLinqSum4Ad = "D"
    End Sub

    Private Sub butBereken_Click(sender As Object, e As EventArgs) Handles butBereken.Click
        For i As Integer = 1 To 4
            Dim s As String = CallByName(Me, "txtLinqSum" & i & "Ad", CallType.Get)
            TextBox1.AppendText(s & vbNewLine)
        Next
    End Sub

End Class

但仅仅因为你可以,并不意味着你应该。数组或其他类型的集合 (List/Dictionary) 可能是更好的选择。