Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Winsor
330 / 266 / 18
Регистрация: 19.01.2011
Сообщений: 597
1

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

16.03.2012, 18:47. Просмотров 674. Ответов 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
Ответы с готовыми решениями:

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

Generic, определение типа переменной во время выполнения программы
Итак имеется две переменной: одна переменная хранит тип значения (точнее...

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

преобразование ref byte в byte[] или в IntPtr без использования неуправляемого кода
есть COM интерфейс с методом: virtual /* */ HRESULT STDMETHODCALLTYPE...

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

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

Цитата Сообщение от Winsor Посмотреть сообщение
Подскажите, пожалуйста, где я не прав. И могу ли я использовать byte[] вообще как генерик тип?
Не правы вы в том, что пытаетесь использовать в качестве генерик типа класс, который не соответствует требованиям вашего обобщенного класса.
У byte[] отсутствует дефолтный контсруктор, как того требует условие для T (where T : new()).
Если уберете это условие, то сможете использовать массив.
1
Escapable
54 / 54 / 9
Регистрация: 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

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

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

Как из ArrayList получить System.Collections.Generic.List
Есть следующая переменная: System.Collections.ArrayList arrayList; которая...


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

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

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