#c# #visual-studio #resharper #c#-9.0
#c# #visual-studio #resharper #c #-9.0
Вопрос:
Я играю с новой record
функцией в консольном приложении. Я использую пробную версию VS Community 16.8.0 R # 2020.2.4.
C # код
using System;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
var test = new Person("firstname", "lastname");
Console.WriteLine($"test.FirstName: {test.FirstName} test.LastName: {test.LastName}");
}
}
public record Person(string FirstName, string LastName);
}
Файл Csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
</Project>
Код может быть скомпилирован и запущен.
Проблема
Дело в том, что IntelliSense не распознает саму запись. VS подчеркивает определение записи и не распознает его использование, несмотря на то, что сама программа может быть скомпилирована.
Что я делаю не так?
Примечание
VS каким-то образом распознает опечатку в определении / использовании записи.
Комментарии:
1. Эта красная подсветка, похоже, является проблемой ReSharper. Возникают ли у вас подобные проблемы при отключении ReSharper?
2. Я пытался отключить R #, но больше не могу найти эту опцию в настройках VS.
3. «Что я делаю не так?» — ожидая, что Resharper полностью поддержит функцию записей сразу после ее выпуска? Проблема не воспроизводима для меня; в моей стандартной установке VS2019 16.8 Intellisense отлично работает для всего в вашем примере кода, включая
Person
тип. Я не могу доказать, что проблема связана с Resharper, но это кажется очень вероятным.4. Ранний доступ к Resharper 2020.3 — это единственный вариант, который у вас есть, если вы хотите использовать новые биты синтаксиса C # 9 и Resharper одновременно. И да, проблемы, которые вы показали, связаны с Resharper, а не с Visual Studio.
5. Раньше у меня никогда не было проблем с R # и новой функцией. Записи отсутствуют как минимум с мая.
Ответ №1:
ReSharper 2020.2.4 не поддерживает новые функции C # 9. Попробуйте последнюю версию (2020.3). Любые дальнейшие проблемы, возникающие у вас с ReSharper, лучше всего решать напрямую с JetBrains.
Комментарии:
1. Это решило проблему для меня. Помните, что если вы переходите на EAP и находитесь в командной среде, либо все члены команды должны будут включить EAP, либо некоторые члены команды будут чесать затылки над вашими новыми прекрасными «записями», подчеркнутыми красной волнистостью. В качестве альтернативы, чтобы использовать новые функции C # 9 изолированно с не-EAP RE #, вы можете добавить
// ReSharper disable All
в начало файла — конечно, вы потеряете всю RE # help для файла с новым материалом C # 9, но это может быть лучше, чем заставлять всехEAP2. @AdamDiament — выпущен ReSharper 2020.3, поэтому вы и ваша команда можете перейти на последнюю версию.
Ответ №2:
Я должен сказать, что у меня такая же «проблема»?
ReSharper по-прежнему не получает его. Записи для ReSharper по-прежнему чертовски разбиты. Пока это продолжается, я не могу использовать ReSharper в классах, где определены или используются записи. Слишком много ложных ошибок. Включение и выключение ReSharper в зависимости от файла вызывает смехотворное раздражение, что в основном приводит к отключению ReSharper. Черт. Какого черта. Я также полностью удалил все, что связано с ReSharper, и снова выполнил чистую установку. Тот же результат с новейшей версией. C # (предварительный просмотр) можно использовать уже несколько месяцев, и они все еще не справились с управлением. Вау.
@KUTlime перейдите в меню «Расширения» и выберите ReSharper, затем в «параметры …». Второй способ сделать это — щелкнуть правой кнопкой мыши по черному кружку в правом нижнем углу и нажать «Настроить …», вот и все.
Редактировать: обновление до 2020.3 EAP7 (предварительный просмотр раннего доступа) решило проблему для меня (и предварительный просмотр медленнее, чем раньше).