Установка значений полей в структуре с помощью FieldInfo в C#

В C#, чтобы установить значение поля с помощью FieldInfoв структуре, вы можете использовать следующие методы:

  1. SetValue(object obj, object value): этот метод устанавливает значение поля, представленного объектом FieldInfo, для данного экземпляра структуры. objк указанному значению. Этот метод требует, чтобы экземпляр структуры был передан как объект.

  2. SetValueDirect(цель TypedReference, значение объекта): этот метод устанавливает значение поля, представленного объектом FieldInfo, для данного экземпляра структуры targetк указанному значению. В отличие от предыдущего метода, этот метод не упаковывает экземпляр структуры, что приводит к повышению производительности.

Вот пример, демонстрирующий использование FieldInfoдля установки значений в структуре:

using System;
using System.Reflection;
public struct MyStruct
{
    public int MyField;
}
public class Program
{
    public static void Main()
    {
        MyStruct myStruct = new MyStruct();
        Type structType = typeof(MyStruct);
        FieldInfo field = structType.GetField("MyField");
        field.SetValue(myStruct, 42); // Setting the value using SetValue
        Console.WriteLine(myStruct.MyField); // Output: 42
    }
}