C# кидает исключение там, где его не может быть

Рейтинг: 0Ответов: 1Опубликовано: 24.01.2023

Вне зависимости от того, как я переписываю код, VS2022 кидает CastException.

internal class AddListSlashCommandHandler : ICommandHandler
{
   private ModerationMode _moderationMode;

   public AddListSlashCommandHandler(SocketSlashCommand command)
   {
       _moderationMode = ModerationMode.NonModerated;
   }
}

Изначально строчка, с присваиванием выглядела так, с этоо все началось:

_moderationMode = (ModerationMode?)(long?)command.Data.Options.FirstOrDefault(op => op.Name == "moderation")?.Value;

ModerationMode

public enum ModerationMode
{
   NonModerated = 1,
   OnlyWarnings = 1 << 1,
   OnlyResend = 1 << 2,
   OnlyDelete = 1 << 3
}

Пробовал удалять папку Debug и Release. Переписывать это строку, если ее удалить, исключение кидается на следующей строке. До этого все работало нормально, потом я изменил _moderationMode на nullable тип и понеслось. На скриншоте я уже поменял все обратно, но ошибка как была, так и осталась. Как перезагрузить проект, или если тут все же есть какое-то приведение, как его исправить?

Ответы

▲ 0Принят

Оказалось, ошибка бросалась на строчку выше и почему-то отображалась тут.