Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

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

1234567891011121314151617
 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 в этих сторках ошибка

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект

А так?

12345678910111213141516171819
  
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 
} 
 
Аватар пользователя
Просветленный

Тип enum в C# по умолчанию основан на int, который может хранить значения от -2,147,483,648 до 2,147,483,647. Ты пытаешься присвоить значения 0x80000000 и 0xffffffff, которые выходят за этот диапазон.
Можешь попробовать явное приведение типов:

123456
 public enum DOT11_PHY_TYPE  
{  
    // ... 
    dot11_phy_type_IHV_start = (int)0x80000000,  
    dot11_phy_type_IHV_end = (int)0xffffffff  
} 

Или изменить базовый тип enum на uint или long:

123456
 public enum DOT11_PHY_TYPE : uint  
{  
    // ... 
    dot11_phy_type_IHV_start = 0x80000000,  
    dot11_phy_type_IHV_end = 0xffffffff  
} 

Если нужны отрицательные значения или используешь этот enum в контексте, где ожидается int, то используй первый вариант. Если нужны большие положительные значения и ты можешь гарантировать, что используешь uint или long в соответствующих местах кода, то выбирай второй вариант.