Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка c# в коде.

Глеб Гарусин Ученик (7), на голосовании 4 месяца назад
 public enum DOT11_PHY_TYPE 
{
dot11_phy_type_unknown = 0,
dot11_phy_type_any = 1,
dot11_phy_type_fhss = 2,
dot11_phy_type_dsss = 3,
dot11_phy_type_irbaseband = 4,
dot11_phy_type_ofdm = 5,
dot11_phy_type_hrdsss = 6,
dot11_phy_type_erp = 7,
dot11_phy_type_ht = 8,
dot11_phy_type_vht = 9,
dot11_phy_type_dmg = 10,
dot11_phy_type_he = 11,
dot11_phy_type_IHV_start = 0x80000000,
dot11_phy_type_IHV_end = 0xffffffff
}
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка (активно) CS0266 Не удается неявно преобразовать тип "uint" в "int". Существует явное преобразование (возможно, пропущено приведение типов).
Ошибка (активно) CS0266 Не удается неявно преобразовать тип "uint" в "int". Существует явное преобразование (возможно, пропущено приведение типов).
dot11_phy_type_IHV_start = 0x80000000,
dot11_phy_type_IHV_end = 0xffffffff в этих сторках ошибка
Голосование за лучший ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157215) 5 месяцев назад
А так?
  
public enum DOT11_PHY_TYPE : uint
{
dot11_phy_type_unknown = 0,
dot11_phy_type_any = 1,
dot11_phy_type_fhss = 2,
dot11_phy_type_dsss = 3,
dot11_phy_type_irbaseband = 4,
dot11_phy_type_ofdm = 5,
dot11_phy_type_hrdsss = 6,
dot11_phy_type_erp = 7,
dot11_phy_type_ht = 8,
dot11_phy_type_vht = 9,
dot11_phy_type_dmg = 10,
dot11_phy_type_he = 11,
dot11_phy_type_IHV_start = 0x80000000,
dot11_phy_type_IHV_end = 0xffffffff
}
Глеб ГарусинУченик (7) 5 месяцев назад
спасибо. сразу не подумал чё то.
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157215) Глеб Гарусин, ?
damn Просветленный (47322) 5 месяцев назад
Тип enum в C# по умолчанию основан на int, который может хранить значения от -2,147,483,648 до 2,147,483,647. Ты пытаешься присвоить значения 0x80000000 и 0xffffffff, которые выходят за этот диапазон.
Можешь попробовать явное приведение типов:
 public enum DOT11_PHY_TYPE  
{
// ...
dot11_phy_type_IHV_start = (int)0x80000000,
dot11_phy_type_IHV_end = (int)0xffffffff
}
Или изменить базовый тип enum на uint или long:
 public enum DOT11_PHY_TYPE : uint  
{
// ...
dot11_phy_type_IHV_start = 0x80000000,
dot11_phy_type_IHV_end = 0xffffffff
}
Если нужны отрицательные значения или используешь этот enum в контексте, где ожидается int, то используй первый вариант. Если нужны большие положительные значения и ты можешь гарантировать, что используешь uint или long в соответствующих местах кода, то выбирай второй вариант.
Похожие вопросы