На самом деле, я сделал это для всех операций, связанных с пролетом.
ел бы использовать деревья выражений 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&
(акаref struct
) вместо типаSingle
(акаstruct
).
Как оценитьSpan<T>
из дерева выражений?