Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
334 / 270 / 18
Регистрация: 19.01.2011
Сообщений: 597
1
.NET 4.x

Использование byte[] как generic-типа

16.03.2012, 18:47. Показов 1185. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите правильное направление в решении такой проблемы. Есть некий класс
C#
1
2
3
4
5
6
public class DataQueue<T> : IDisposable where T: class, new()
{
 
          private readonly Queue<T> QueuePackets = null;
//skip
}
и хочу использовать следующим образом
C#
1
private readonly DataQueue<byte[]> queue;
при билде возникает ошибка
DataReceiver.cs(50,44): error CS0310: 'byte[]' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'T' in the generic type or method 'SharedSources.DataQueue<T>'

Подскажите, пожалуйста, где я не прав. И могу ли я использовать byte[] вообще как генерик тип?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.03.2012, 18:47
Ответы с готовыми решениями:

Как перевести byte[] или переменную типа IntPtr к типу byte[] (ассемблерные инструкции)?
Наткнулась на проблему, нужно перевести тип IntPtr в массив ассемблерной инструкции. Вот пример...

Generic методы. Как в этом методе обратиться к row как объекту типа DataRow или DataRowView
Доброго времени суток! Помогите пожалуйста разобраться с дженериками, что-то не догоняю я как...

Как узнать что находится в переменной типа byte[]
Здравствуйте. Я имею простенький чат p2p. При передаче текста, я его перевожу из string в byte, ну...

Глупый человек ищет умную мысль при сравнения массива типа byte с маскй типа byte.
Прошу помощи в виде объяснения в следующем вопросе. на вход программы поступает array of byte....

3
54 / 54 / 9
Регистрация: 09.11.2010
Сообщений: 120
16.03.2012, 23:38 2
А если убрать new()? Ведь byte это структура, а значит нельзя перегружать конструктор по умолчанию. Получается что в данном контексте, хоть в параметр обобщенного типа и передается ссылочный тип (массив), использование new() не имеет смысла.
1
Эксперт .NET
17689 / 12874 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
17.03.2012, 11:17 3
Цитата Сообщение от Escapable Посмотреть сообщение
byte это структура
byte-то структура, а вот byte[] - класс.

Цитата Сообщение от Winsor Посмотреть сообщение
Подскажите, пожалуйста, где я не прав. И могу ли я использовать byte[] вообще как генерик тип?
Не правы вы в том, что пытаетесь использовать в качестве генерик типа класс, который не соответствует требованиям вашего обобщенного класса.
У byte[] отсутствует дефолтный контсруктор, как того требует условие для T (where T : new()).
Если уберете это условие, то сможете использовать массив.
1
54 / 54 / 9
Регистрация: 09.11.2010
Сообщений: 120
17.03.2012, 17:52 4
Цитата Сообщение от kolorotur Посмотреть сообщение
byte-то структура, а вот byte[] - класс.
Да-да, я ведь в контексте так и написал "хоть в параметр обобщенного типа и передается ссылочный тип (массив)". Надо было выразиться более четко и написать byte[].
0
17.03.2012, 17:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2012, 17:52
Помогаю со студенческими работами здесь

Как в json сохранить данные типа byte?
как в json сохранить данные типа byte?

Как из потока передать в переменную типа Byte?
Вопрос такой: как можно из потока TStream данные занести в двумерный массив типа Array of Byte по...

как отослать переменную типа byte по сети
как отослать переменную типа byte по сети. Пробовал WriteSmallInt, но она посылает 2 байта

как написать программу, позволяющую в массиве 10 переменных типа byte?
Как написать программу, позволяющую в массиве 10 переменных типа byte и выполнить сортировку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru