Подтвердить что ты не робот

Интерполировать строку С# 6.0 и Stylecop

Я использую версию Stylecop: 4.7.49.0

Кто-нибудь использовал последнюю интерполяционную строку в С# 6.0

Пример

var totalUnits = GetUnitsGetTotalIssuedShares(myId);
var testString = $"Test Units :{totalUnits}, have been shipped.";

Когда я создаю, я получаю ошибку стиля SA0102 - потому что стильный автомат не разбирает файл. Кажется, нет новой версии стиля, которая может обрабатывать 6.0 еще?

error: SA0102: Синтаксическая ошибка была обнаружена в файле

Есть ли вокруг этой ошибки?

4b9b3361

Ответ 1

SA0102 является внутренней ошибкой стиля, поэтому не может быть подавлен или проигнорирован с помощью файла настроек.

Вы можете подавить файл из стиля, найдя имя файла и изменив раздел на это в csproj:

<Compile Include="<filename>.cs">
  <ExcludeFromStyleCop>True</ExcludeFromStyleCop>
</Compile>

Вы можете получить тот же эффект, щелкнув правой кнопкой мыши на повреждающем файле и выбрав "исключить из стиля коп", если у вас установлен плагин StyleCop. В настоящее время для Visual Studio 2015 требуется 4.7.50 альфа.


Более современный способ сделать это - использовать функцию Analyzer для Visual Studio 2015, StyleCop.Analyzers.

введите описание изображения здесь

Переходя к Stylecop.Analyzers, это добавит их в правила в соответствующем файле *.ruleset(то же самое, что и правила CodeAnalysis)

введите описание изображения здесь

и вы можете запустить их через

введите описание изображения здесь

Что имеет тот же эффект, что и щелчок правой кнопкой мыши Run StyleCop:

т.е. подача:

введите описание изображения здесь

Это улучшит поддержку С# 6, поскольку StyleCop 4.7.50, поддерживающий Visual Studio 2015, находится в альфа и еще не поддерживает С# 6.

Ответ 2

StyleCop теперь сможет обрабатывать С# 6:

Изменения бета 4.7.51: добавлена ​​начальная (и непроверенная) поддержка синтаксиса С# 6.0

Итак, со стабильной сборкой 4.7.54 или более поздней версии вам больше не придется встречаться: http://stylecop.codeplex.com/releases/view/621306