迁移到VS2015,我遇到了编译问题。 项目没有变化'目标框架,它们仍然是.net 4.5
编译器似乎无法识别参数类型
void BootstrapOIS(List<long>^ %resultDates, List<double>^ %resultRates,
const long tradingDate, /*const*/ List<int>^ periodNumbers,
/*const*/ List<String^>^ periods, /*const*/ List<double>^ swapsRates,
/*const*/ List<long>^ hol);
错误CS0570&#39; BootstrapWrapper.BootstrapOIS(参考?,?,?,?,?,?,?)&#39; 语言不支持
引用的程序集:
- Bootstrap,Version = 1.0.4918.15400,Culture = neutral,PublicKeyToken = b007f9158e880332
- 全球类型:
- 架构:x64
- 此程序集包含非托管代码。
- 运行时:.NET 4.0
VS2013编译顺利。
答案 0 :(得分:0)
看起来您在声明中混合了标准和CLR类型。生成的代码(来自ILSpy)是相同的,但是当它从C#中使用时它会窒息。
在签名中仅使用CLR类型似乎有效:
void BootstrapOIS(List<Int64>^ %resultDates, List<System::Double>^ %resultRates,
const Int64 tradingDate, List<Int32>^ periodNumbers, List<String^>^ periods,
List<Double>^ swapsRates, List<Int64>^ hol);
答案 1 :(得分:0)
我遇到了类似的问题 - 据说微软有一个公开的错误。
尝试删除&#34; const&#34;声明,并将tradingDate更改为Int64变量。如果这解决了,那么,恭喜你,你有一个成功的解决方法。