Проверки ReSharper показывают, что я могу использовать ключевое слово field в ряде мест, но когда я это делаю, VS ненавидит результат рефакторинга, и я получаю ошибки компиляции (" Имя «поле» не существует в текущем контексте» и т. д.).
Я совершенно не понимаю, почему мой VS (я даже попробовал предварительный просмотр — Я использую Professional 2022 версии 17.5.0 (предварительная версия 6.0) не хочет любить C# 11.
Вот что у меня есть для установленных SDK, на случай, если это повлияет на ситуацию...
Код: Выделить всё
C:\>dotnet --list-sdks
7.0.103 [C:\Program Files\dotnet\sdk]
7.0.200-preview.22628.1 [C:\Program Files\dotnet\sdk]
7.0.200 [C:\Program Files\dotnet\sdk]
ДО
Код: Выделить всё
private int _updateDepth; // this is "grayed" by R# with hint to address
private int UpdateDepth
{
get => _updateDepth;
set
{
_updateDepth = value;
if (!SkipHandlers && !SkipCallbacks && UpdateDepth is 0)
RunGameDataChangedCallback();
}
}
Код: Выделить всё
private int UpdateDepth
{
get;
set
{
field = value;
if (!SkipHandlers && !SkipCallbacks && UpdateDepth is 0)
RunGameDataChangedCallback();
}
}
ОШИБКИ КОМПИЛЯТОРА
Код: Выделить всё
CS0501 'GameControl.UpdateDepth.get' must declare a body because it is not marked abstract, extern, or partial
CS0103 The name 'field' does not exist in the current context
Подробнее здесь: https://stackoverflow.com/questions/754 ... in-vs-2022