public static void Main()
var typedRef = TypedReference.MakeTypedReference(ca, [
typeof(ClassA).GetField("varC", BindingFlags.Instance | BindingFlags.NonPublic),
typeof(ClassA.StructB?).GetField("value", BindingFlags.Instance | BindingFlags.NonPublic),
typeof(ClassA.StructB).GetField("varB", BindingFlags.Instance | BindingFlags.Public),
typeof(StructA?).GetField("value", BindingFlags.Instance | BindingFlags.NonPublic)
ref StructA sa = ref __refvalue(typedRef, StructA);
Console.WriteLine($"sa.varA = {sa.varA}");
Console.WriteLine($"sa = {sa}");
Console.WriteLine($"ca = {ca}");
public static void FunctionA(ref float value)
Console.WriteLine(value.ToString());
public override string ToString() => $"StructA: varA = {varA}";
public override string ToString() => $"ClassA: varC = {varC}, varC == null = {varC.HasValue}, varC.HasValue = {varC.HasValue}";