Ссылка на стоимость в вложенных нулевых структурах ⇐ C#

Место общения программистов C#
Anonymous
Ссылка на стоимость в вложенных нулевых структурах

Сообщение Anonymous »

Я предполагаю, что ответ в конечном итоге будет: «Нет, вы не можете этого сделать», но попытка выяснить, как сделать что -то в C#. На стороне данных у меня есть что -то вроде этого: < /p>

Код: Выделить всё

public struct StructA
{
public float varA;
}

public class ClassA
{
public struct StructB
{
public StructA? varB;
}

private StructB? varC;
}
< /code>
, а затем, наконец, у меня есть эта функция: < /p>
public static void FunctionA(ref float value)
< /code>
Это функция, которую я не контролирую, которая хочет ссылаться на поплавок. Если у меня есть структура 
и передавать structa.vara в function , она правильно работает на VARA на месте. Я пытался использовать отражение, чтобы получить информацию о поле для значения внутри нулевой обертки, но она ведет себя как getValue , возвращается, ну, вся структура вместо ссылки. Я продолжаю бить наполовину решения, где компилятор признает, что знает, что я пытаюсь сделать, но не позволю мне - есть ли какой -нибудь способ сказать ему просто сделать это?StructA exampleA = (StructA)typeof(StructA?).GetField("value",BindingFlags.NonPublic|BindingFlags.Instance).GetValue(SomeNullableStructA);
< /code>
Я также попробовал < /p>
unsafe
{
StructA* ptr = (StructA*)&SomeNullableStructA;
}
< /code>
, который не вступает в Acount Nullable.hasvalue, поэтому я не ожидал бы, что это выстраивается, но я не зашел слишком далеко по этому пути из -за ошибки: < /p>
C8370: функция 'Ненаправленные построенные типы' не доступен в C# 7.3. Пожалуйста, используйте языковую версию 8.0 или более.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... le-structs

Вернуться в «C#»