Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# .NET

Войти
Регистрация
Восстановить пароль
 
Winsor
328 / 264 / 3
Регистрация: 19.01.2011
Сообщений: 597
#1

Использование byte[] как generic-типа - C#/.NET 4.x

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

Подскажите правильное направление в решении такой проблемы. Есть некий класс
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2012, 18:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос .NET 4.x Использование byte[] как generic-типа (C#):

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

Generic, определение типа переменной во время выполнения программы - C#
Итак имеется две переменной: одна переменная хранит тип значения (точнее числовое значение одного из типов в моем enum'e) Для ясности...

Объявление обобщённого типа (Generic) для стандартных целочисленных типов - C#
Здравствуйте. Есть класс для вычисления факториала: public class Factorial { long _digit; public...

.NET 2.x преобразование ref byte в byte[] или в IntPtr без использования неуправляемого кода - C#
есть COM интерфейс с методом: virtual /* */ HRESULT STDMETHODCALLTYPE OnReceivePacket( /* */ long dwSize, ...

Пердача byte[] COM-функции, ожидающей ref byte - C#
Привет, наше приложение в C# использует несколько COM-интерфейсов. В одном из них есть метод, которому передается ref byte : ...

wav byte[] в flac byte[] - C#
Ситуация такая: С микрофона каждую 0.1 сек идет byte где то по 3к значений. Если я пишу его в файл то получается как бы wav файл....

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

Цитата Сообщение от Winsor Посмотреть сообщение
Подскажите, пожалуйста, где я не прав. И могу ли я использовать byte[] вообще как генерик тип?
Не правы вы в том, что пытаетесь использовать в качестве генерик типа класс, который не соответствует требованиям вашего обобщенного класса.
У byte[] отсутствует дефолтный контсруктор, как того требует условие для T (where T : new()).
Если уберете это условие, то сможете использовать массив.
1
Escapable
54 / 54 / 2
Регистрация: 09.11.2010
Сообщений: 120
17.03.2012, 17:52 #4
Цитата Сообщение от kolorotur Посмотреть сообщение
byte-то структура, а вот byte[] - класс.
Да-да, я ведь в контексте так и написал "хоть в параметр обобщенного типа и передается ссылочный тип (массив)". Надо было выразиться более четко и написать byte[].
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2012, 17:52
Привет! Вот еще темы с ответами:

Как из ArrayList получить System.Collections.Generic.List - C#
Есть следующая переменная: System.Collections.ArrayList arrayList; которая содержит элементы типа elemType (Type elemType = какой-то...

Использование параметров неопределенного типа - C#
Доброго времени суток. Ситуация следующая: нужно организовать универсальный метод добавления записи в БД в зависимости от входной...

Как переконвертировать int в byte[]? - C#
Как переконвертировать hex занчение int в byte? Чтобы int a = 0x45C5; cтало byte b = new byte {0x45, 0xC5}; udp: и наоборот тоже

Как поместить файл в byte[]? - C#
Привет, как мне засунуть в byte файл быстрее всего? Я пока написал так, но это ужастно, и наверное работает очень медленно ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru