简体   繁体   English

vb.net变量集合

[英]vb.net Collection of variables

How do I archive something like below ? 如何归档以下内容?
I want to be able to iterate through the Collection of PartPrograms in Send() but still can directly "access" the variables like I did in Generate() -> (Program."VariableName".data). 我希望能够遍历Send()PartPrograms Collection ,但仍然可以像在Generate() -> (Program."VariableName".data).一样直接“访问”变量(Program."VariableName".data).

Public Class ProgramManager

    Private Program As New CavityProgram

    Sub Generate()  
        Program.MainProg.data = GetDataFunction() 'fill with data
        Program.MainProg.path = "C:\Foo.txt"
        [...]
    End Sub

    Sub Send()
        For Each prog In Program            'which collection do i need to do THIS
            System.IO.File.WriteAllText(prog.path, prog.data)
        Next
    End Sub

End Class

Public Class CavityProgram
    Public MainProg As PartProgram
    Public Parameter As PartProgram
    Public Molding As PartProgram

    'Collection which stores all PartPrograms 

End Class

Public Structure PartProgram        'data object
    Public path As String
    Public data As String
End Structure

I found a solution that fits my requirements 我找到了适合我要求的解决方案

Public Class ProgramManager
    Public Programs As New List(Of PartProgram) 'Stores all partprograms

Sub Generate()            
    Programs.Add(New PartProgram With {
                    .name = "FU2PIECE.MPF",
                    .data = System.IO.File.ReadAllText(pathTemplate & "\FU2PIECE.MPF", System.Text.Encoding.UTF8) _
                          .Replace("$DATE$", DateTime.Now.ToString("dd/MM/yy HH:mm:ss")) _
                          .Replace("$JOBINFO$", sji.ShortJobInfo) _
                          .Replace("$VERSION$", My.Application.Info.Version.Major & "." & My.Application.Info.Version.Minor)
                })

               [...]
End Sub

Sub Send()
      For Each prog In Me.Programs
            System.IO.File.WriteAllText(root & "\" & prog.name, prog.data)
      Next
End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM