Пример:Ошибка проверки инспектора кода?
Public Enum Vehicles As Integer
Car = 0
MotorBike = 1
Plane = 2
End Enum
Чтобы получить значение каждого участника транспортного средства (0
, 1
, 2
) Я предполагаю, что я должен бросить это так:
DirectCast(Vehicles.Car, Integer)
Это прекрасно работает, однако, Resharper производит это предупреждение по intellisense:
«Нельзя выразить выражение типа Транспортные средства для ввода целого числа»
Почему это? Это ошибка? Есть ли другой способ для меня получить ценность каждого члена без преобразования? (Cint и т. Д.)
Мне не нужен атрибут flags в этом случае, но эта сила двух вещей, я никогда не думал об этом;) Я предпочитаю использовать DirectCast tho, не позволяет мне делать ошибки во время компиляции и использовать правильные типы, так как CInt попытается преобразовать почти все в целое ... Я просто хотел проверить и поделиться этой «ошибкой», возможно, она будет исправлена в будущей версии или, может быть, в текущем, так как я получил более старую (8,2). Спасибо за объяснение, на данный момент, я верю, что отключу проверку кода для этого случая. – SomeNickName
Я использую R # 9, и я вижу такое же поведение. Если вы обнаружили проблему, вы должны сообщить об этом JetBrains, чтобы они могли ее исправить. Я проверил, и литье отлично работает на C#. – jmcilhinney
. Если вы хотите, чтобы одна переменная могла хранить несколько значений одновременно, вы бы использовали только 2 аргумента, и если вы хотите, то вы должны применить атрибут «Флаги». Они идут рука об руку. – jmcilhinney