Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Будет ли происходить упаковка? работа с перечислением 
V
    Опции темы
WERITAS
Дата 26.4.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Доброго времени суток!

Сделал перечисление:
Код

public enum MessageID : int
    {
        MID_S_GET_GI = 1,
        MID_S_GET_QUESTION = 2,
        MID_S_GET_QUESTION_COUNT = 3,
        MID_S_GET_PERMIT = 4


Использую его вот таким образом:
Код

public byte[] mCreate(MessageID id, int length)

    MemoryStream ms = new MemoryStream();
    BinaryWriter binWriter = new BinaryWriter(ms);
    binWriter.Write((int)id);  // <- Упаковка?
..........................................

public void mAnalys(byte[] buffer)
{
  MemoryStream stmReader = new MemoryStream(buffer);
  BinaryReader binReader = new BinaryReader(stmReader);
  int id = binReader.ReadInt32();
  switch (id)
  {
      case (int)MessageID.MID_S_GET_GI: // <- Упаковка?
           Console.WriteLine("identifier: {0}", id);
          break;
...............................

Помнится в С++ тоже иногда мне приходилось явно приводить перечисление к int, в С# также делать? Или я неправильно с перечислениями работаю?



--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
HalkaR
Дата 26.4.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Нет, по-тому что int это value type. Это просто приведение. Причем кажется даже не обязательное (в смысле кажется там может быть неявное приведение).
PM MAIL   Вверх
WERITAS
Дата 26.4.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Цитата(HalkaR @  26.4.2008,  14:10 Найти цитируемый пост)
Причем кажется даже не обязательное 

У меня выдаёт ошибку Cannot implicitly convert type 'MessView.MessageID' to 'int'. An explicit conversion exists (are you missing a cast?) при неявном приведении (VS 2005 .NET 2.0)


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
source777
Дата 26.4.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 4
Всего: 56



WERITAS, когда ты хочешь проверить определённый код на наличие упаковки, просто открой скомпилированную сборку с помощью ildasm , если в интересующем тебя фрагменте будут операторы box, значит упаковка происходит...


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
WERITAS
Дата 26.4.2008, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Нашел
Код

IL_0047:  box        [mscorlib]System.Int32

:-(

Всем спасибо


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0761 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.