Я хотел бы использовать деревья выражений Linq для вызова индексатора Span<T>. Код выглядит так:
var spanGetter = typeof(Span<>)
.MakeGenericType(typeof(float)).GetMethod("get_Item");
var myFloatSpan = Expression.Parameter(typeof(Span<float>), "s");
var myValue = Expression.Call(
myFloatSpan,
spanGetter,
Expression.Constant(42));
var myAdd = Expression.Add(
myValue,
Expression.Constant(13f));
Тем не менее, этот код выходит из строя, потому что myValue имеет тип Single& (aka ref struct) вместо типа Single (aka struct).
Как оценить Span<T> из дерева выражений?