В C#, чтобы установить значение поля с помощью FieldInfoв структуре, вы можете использовать следующие методы:
-
SetValue(object obj, object value): этот метод устанавливает значение поля, представленного объектомFieldInfo, для данного экземпляра структуры.objк указанномузначению. Этот метод требует, чтобы экземпляр структуры был передан как объект. -
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
}
}