Создание и заполнение структуры методом Reflection - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Мне нужно создать структуры с определенными полями, заполнить поля и вывести их значения. Вывод реализовал:
Не получается сделать создание и заполнение. Нужно что-то типа функции, у которой на входе тип объекта (Structure1, Structure2, etc), а возвращает она объект с заполненными полями. Можно вариант с заранее созданным объектом:
Только в таком варианте у меня Option Strict On ругается.

Решение задачи: «Создание и заполнение структуры методом Reflection»

textual
Листинг программы
Option Strict On
 
Imports System.Reflection
 
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim mc1 As New MyCla With {.p1 = 111, .p2 = 222, .p3 = 333}
        MyClaOutput(mc1)
 
        Dim mc2 As MyCla = CreateMyCla()
        MyClaOutput(mc2)
    End Sub
 
    Private Sub MyClaOutput(ByVal o As Object)
        Dim out As New System.Text.StringBuilder()
        For Each field As FieldInfo In o.GetType.GetFields(BindingFlags.Public Or BindingFlags.Instance)
            out.AppendLine(String.Format("{0}: {1}", field.Name, field.GetValue(o).ToString))
        Next
        MsgBox(out.ToString)
    End Sub
 
    Private Function CreateMyCla() As MyCla
        CreateMyCla = New MyCla
        Dim i As Integer = 2
        For Each field As FieldInfo In CreateMyCla.[GetType]().GetFields(BindingFlags.Instance Or BindingFlags.[Public])
            field.SetValue(CreateMyCla, i)
            i *= i
        Next
    End Function
End Class
 
Public Class MyCla
    Public p1 As Integer
    Public p2 As Integer
    Public p3 As Integer
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы