在C#中,当使用从float
获得的Span<float>
时,我想用Linq表达式树构造一个算术表达式。尝试使用Expression.Multiply会失败,InvalidOperationException
抛出The binary operator Multiply is not defined for the types 'System.Single&' and 'System.Single&'
。
子表达式是Single&
而不是Single
值,并产生:
var val = Expression.Call(
mySpan,
typeof(Span<>).MakeGenericType(typeof(float).GetMethod("get_Item"),
myIndex)
我可以将Single&
转换为Single
吗?或者,还有一种更惯用的方式来调用Span<float>
的索引器吗?