这是我第二次问这个问题,因为它已被标记为重复,但我的问题仍然没有解决我想不通.
来自链接1: 下面的代码来自已接受的答案,但不起作用。
CS0306 类型“ReadOnlySpan”不能用作类型参数
var delegateCtor = Expression.Lambda<Func<ReadOnlySpan<byte>,object>>
(ctorCall, new ParameterExpression[] { param }).Compile();
所以我的问题又来了:
在 .Net 框架中
BigInteger
有一个构造函数,我可以这样调用它:
ConstructorInfo _ctor = typeof(BigInteger).GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null,
new Type[] { typeof(UInt32[]), typeof(Boolean) }, null);
BigInteger result = (BigInteger)_ctor.Invoke(new Object[] { new UInt32[] { 42, 69, 314 }, false });
最近换成.Net Core,构造函数改成:
ConstructorInfo _ctor = typeof(BigInteger).GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance,
new Type[] {typeof(ReadOnlySpan<UInt32>), typeof(Boolean) });
所以合乎逻辑的步骤是:
BigInteger result = (BigInteger)_ctor.Invoke(new Object[] { new ReadOnlySpan<UInt32>(new UInt32[] { 42, 69, 314 } ), false } );
但是我遇到了一个错误。
错误 CS0029 无法将类型“System.ReadOnlySpan”隐式转换为“对象”。
我怎样才能调用一个构造函数,它有两个参数,其中一个是
ReadOnlySpan
?
谢谢