Ошибка компиляции Visual Studio 2015: CS0570 не поддерживается языком

При переходе на 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 «BootstrapWrapper.BootstrapOIS (ref ?, ?, ?, ?, ?, ?, ?)» не поддерживается языком

Упомянутая сборка:

  • Bootstrap, версия = 1.0.4918.15400, культура = нейтральная, PublicKeyToken = b007f9158e880332
  • Глобальный тип:
  • Архитектура: x64
  • Эта сборка содержит неуправляемый код.
  • Время выполнения: .NET 4.0

Компиляция прошла успешно с VS2013.


person yi.han    schedule 17.08.2015    source источник
comment
Попробуйте удалить и прочитать ссылку. У меня это случилось, и это исправило это для меня.   -  person dmeglio    schedule 17.08.2015
comment
@ dman2306: спасибо за ответ. Пробовал, но похоже не работает.   -  person yi.han    schedule 17.08.2015
comment
Это происходит, когда вы смешиваете стандартные типы C++ и типы CLR. Можете ли вы дать нам подпись C++/CLI?   -  person Nekresh    schedule 29.10.2015


Ответы (2)


Похоже, вы смешиваете стандартные типы и типы 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);
person Nekresh    schedule 30.10.2015

Я столкнулся с похожей проблемой - предположительно, у Microsoft есть открытая ошибка.

Попробуйте удалить объявление "const" и измените tradeDate на переменную Int64. Если это решит проблему, поздравляем, у вас есть успешный обходной путь.

person Mark Gendron    schedule 02.02.2017